Pandas 代码
import pandas as pd
def find_customers(customers: pd.DataFrame, orders: pd.DataFrame) -> pd.DataFrame:
df = customers[~customers['id'].isin(orders['customerId'])]
return df[['name']].rename(columns={'name': 'Customers'})
查询步骤
功能
这个函数的目的是在给定的两个 DataFrame(customers
和 orders
)中,找出那些存在于customers
但不在orders
中的客户。
实现步骤
-
数据过滤:
df = customers[~customers['id'].isin(orders['customerId'])]
:- 这一步是函数的核心。我们使用了 Pandas 的
.isin()
方法来检查customers
DataFrame 中的id
值是否存在于orders
DataFrame 的customerId
列中。 ~
符号是一个否定操作符,在这里它表示选择那些id
不在orders['customerId']
中的客户。- 结果是一个新的 DataFrame
df
,包含了所有未在orders
中下过订单的客户。
- 这一步是函数的核心。我们使用了 Pandas 的
-
选择和重命名列:
return df[['name']].rename(columns={'name': 'Customers'})
:- 这一行选择了
df
中的name
列,并将其重命名为Customers
。 - 最终返回的 DataFrame 仅包含一个列
Customers
,列出了所有未下过订单的客户的名字。
- 这一行选择了
结果
这个函数将返回一个包含所有未在订单表中出现过的客户名字的 DataFrame。