You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Pandas构建销量Top N商品关联售卖次数统计透视表

原有代码逻辑不成立:你将行、列参数都设置为同一个Product_ID字段,单条销售记录只会对应一个商品,不存在同一条记录内包含两个不同商品的情况,pivot_table无法匹配到有效值,返回NaN属于正常结果。

你可以按照以下步骤调整代码实现需求:

  1. 先统计所有商品的总销量,筛选出销量Top N的核心商品
  2. 通过自连接关联同一个销售单下的所有商品,得到两两配对的商品组合
  3. 统计每对商品的共现次数,再转成你需要的透视表格式

完整可运行代码如下:

import pandas as pd

# 此处替换为你自己的数据集加载逻辑,假设已加载为df_january,注意字段名拼写正确
# 第一步:计算各商品总销量,取Top N核心商品,这里N=3和你给出的示例匹配
N = 3
product_total_sales = df_january.groupby('Product_ID')['Product_qty'].sum().sort_values(ascending=False)
top_core_products = product_total_sales.head(N).index.tolist()

# 第二步:自连接得到同一个销售单下的商品配对
df_product_pairs = df_january.merge(df_january, on='Sell_ID', suffixes=('_row', '_col'))

# 第三步:统计每对商品的共现订单数
pair_cooccur_count = df_product_pairs.groupby(['Product_ID_row', 'Product_ID_col']).size().reset_index(name='cooccur_cnt')

# 第四步:生成透视表,仅保留核心商品作为行,空值填0
cooccur_pivot = pair_cooccur_count.pivot_table(
    index='Product_ID_row',
    columns='Product_ID_col',
    values='cooccur_cnt',
    fill_value=0
).loc[top_core_products]

# 可选操作:将对角线数值替换为对应核心商品的总销量,和你给出的示例格式完全对齐
for prod in top_core_products:
    cooccur_pivot.loc[prod, prod] = product_total_sales[prod]

运行后输出的cooccur_pivot就是你需要的共现透视表。

内容的提问来源于stack exchange,提问作者matikuto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:45:02