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

如何统计Pandas数据框中产品选择组合的出现频率?

Pandas统计产品选择组合及对应选中列的实现

步骤1:准备环境与模拟数据

先给数据框添加列名(方便后续识别选中的产品),模拟代码如下:

import pandas as pd
import numpy as np

# 生成模拟数据并添加列名
df = pd.DataFrame(np.random.randint(2, size=(566,8)), columns=[f"产品{i+1}" for i in range(8)])

步骤2:统计各选择组合的出现次数

两种简洁实现方式:

方式一:用value_counts()快速统计

# 按行去重并统计次数,转换为数据框格式
combination_counts = df.value_counts().reset_index(name="出现次数")

方式二:用groupby分组统计

# 按所有列分组,统计每组行数
combination_counts = df.groupby(list(df.columns)).size().reset_index(name="出现次数")

步骤3:提取对应选中的产品列

通过apply遍历每行,筛选出值为1的列名,组成选中产品列表:

combination_counts["选中的产品列"] = combination_counts.apply(
    lambda row: [col for col in df.columns if row[col] == 1],
    axis=1
)

步骤4:整理并查看结果

如果只需要核心信息(选中产品+出现次数),可以筛选列并排序:

# 按出现次数降序排列,展示关键列
final_result = combination_counts[["选中的产品列", "出现次数"]].sort_values(by="出现次数", ascending=False)
print(final_result)

说明

  • 如果你的原始数据框没有列名,先执行df.columns = [f"产品_{i}" for i in range(df.shape[1])]给列命名,否则选中列会显示索引数字
  • value_counts()默认按出现次数降序排列,比groupby写法更简洁,适合快速统计

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:35:38