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

如何使用pandas查找DataFrame中用户购买产品的最常见组合

实现代码及逻辑说明

核心思路是先提取每个用户已购买的产品名称,再统计不同组合的出现频次,取最高值输出即可。

完整可运行代码如下:

import pandas as pd

# 示例数据构造,实际使用时替换为pd.read_csv等读你自己的数据文件即可
df = pd.DataFrame({
    'AA': [1, 0, 0, 1, 1],
    'BB': [0, 0, 1, 0, 0],
    'CC': [1, 1, 0, 1, 1]
})

# 提取每行用户的购买产品组合,排序后转元组方便后续统计
df['buy_combo'] = df.apply(
    lambda row: tuple(sorted([col for col in df.columns if row[col] == 1)),
    axis=1
)

# 统计各组合购买人数,过滤掉无购买的空组合
combo_count = df['buy_combo'].value_counts().reset_index()
combo_count.columns = ['combo', 'count']
combo_count = combo_count[combo_count['combo'].apply(len) > 0]

# 取最高频次的组合输出
top = combo_count.iloc[0]
combo_name = '和'.join(top['combo'])
print(f'最常见组合为产品{combo_name},共有{top["count"]}人购买')
  • 如果存在多个并列最高频次的组合,把取数逻辑替换为下面的代码即可:
max_count = combo_count['count'].max()
top_combos = combo_count[combo_count['count'] == max_count]
for _, item in top_combos.iterrows():
    combo_name = '和'.join(item['combo'])
    print(f'最常见组合为产品{combo_name},共有{item["count"]}人购买')

你给出的示例数据运行后输出结果为:最常见组合为产品AA和CC,共有3人购买,完全匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:36:04