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

使用groupby统计column1分组下column2最常见的取值组合

实现方案(Python + Pandas)

实现思路

  1. 按column1分组,提取每组column2的唯一值集合,避免同组重复元素影响组合统计
  2. 枚举每个分组集合的所有非空组合(可按需指定组合长度,示例中最高频的是2元组合),记录每个组合的出现次数(即存在该组合的分组数量)
  3. 对所有组合的出现次数排序,取值最高的即为目标公共组合

具体代码实现

首先导入依赖库:

import pandas as pd
from itertools import combinations
from collections import defaultdict

然后构造样例数据集:

# 构造样例数据集
data = {
    'column1': ['A','A','A','B','B','C','C','C','C','D','D'],
    'column2': ['apple','banana','pineapple','apple','banana','grape','banana','apple','mandarine','apple','banana']
}
df = pd.DataFrame(data)

分组统计组合频率:

# 按column1分组,获取每组column2的唯一值集合
group_items = df.groupby('column1')['column2'].unique().tolist()

# 统计所有组合的出现次数
com_counter = defaultdict(int)
for items in group_items:
    # 可修改range参数自定义统计的组合长度,当前设置为统计长度≥2的所有组合
    for i in range(2, len(items)+1):
        # 先排序再生成组合,避免相同元素不同顺序被识别为不同组合
        for com in combinations(sorted(items), i):
            com_counter[com] += 1

# 找出出现次数最多的组合
most_common_com = max(com_counter.items(), key=lambda x: x[1])
print(f"出现次数最多的公共组合是{most_common_com[0]},共出现{most_common_com[1]}次")

样例输出

出现次数最多的公共组合是('apple', 'banana'),共出现4次

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 07:15:03