我有两个Pandas Dataframe ,看起来像这样:
Dataframe 1:
| 顾客|销售额|发票号|产品子类别|零件号码|
| - ------|- ------|- ------|- ------|- ------|
| A类|约翰|一百二十三|亚单位A|第01页|
| B|约翰|四百五十六|次级B|第02页|
| C级|约翰|七八九|次级C|P03|
| D级|约翰|小行星|次级C|第四页|
| E级|约翰|小行星|亚单位A|第五页|
Dataframe 2:
| 产品子类别|零件号码|
| - ------|- ------|
| 亚单位A|第01页|
| 亚单位A|第五页|
| 次级B|第02页|
| 次级B|P06|
| 次级C|P03|
| 次级C|第四页|
我想检查每个customer
都没有invoice no
的part number
。
我试过这段代码,但它返回空 Dataframe :
# merge 2 dataframes
product = pd.merge(df1, df2, on = 'part number', how = 'outer')
# checking part number without invoice number
not_sold = product[product['invoice no'].isna()]
# grouping part number without invoice number per customer
not_sold_per_customer = not_sold.groupby('customer')['part'].agg(lambda x: ', '.join(x.drop_duplicates())).reset_index()
这是期望的输出:
| 顾客|零件号码|
| - ------|- ------|
| A类|第二页、第三页、第四页、第五页|
| B|第1页、第3页、第4页、第5页|
| C级|第1页、第2页、第4页、第5页|
| D级|第1页、第2页、第3页、第5页|
| E级|第一页、第二页、第三页、第四页|
请帮助我建立这正确的代码.谢谢你在前进!
2条答案
按热度按时间4bbkushb1#
用途:
7vux5j2d2#
这可能是你想要的。如果客户/订单没有发票,它会创建两列数据框,分别是客户名称和零件号。
输出
如果不使用apply方法,则零件号列将包含零件号列表而不是字符串。