如何用Pandas查找与特定产品'SWE'共同购买的高频产品?
解决与'SWE'共同购买的产品统计问题
操作步骤:
- 第一步:提取所有购买过'SWE'的销售发票ID
# 精确匹配产品'SWE',如果是产品名称包含'SWE',就把==换成.str.contains('SWE') invoices_with_swe = df[df['product'] == 'SWE']['sales_invoice'].unique() - 第二步:筛选这些发票中除'SWE'外的所有产品
co_purchased_products = df[ df['sales_invoice'].isin(invoices_with_swe) & (df['product'] != 'SWE') ] - 第三步:统计共同购买产品的频次,取最常见的
# 这里取前5个最常共同购买的产品,可根据需求修改head()里的数字 top_co_products = co_purchased_products['product'].value_counts().head(5) print(top_co_products)
原代码问题说明:
你之前的groupby(df['product'].str.contains('SWE'))只是把数据按「是否包含SWE」分成两组,仅拿到了对应发票列表,但没有建立发票和其他产品的关联。上面的步骤先锁定买过SWE的发票池,再从池子里捞出其他产品,就能精准统计共同购买的情况。
内容的提问来源于stack exchange,提问作者Poppy
相关产品推荐
相关产品推荐

