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

按group1和group2分组统计num1与num2唯一组合的行数

解决方法

首先构造目标DataFrame:

import pandas as pd

data = {
    'group1': ['A', 'A', 'A', 'A', 'A', 'B', 'B'],
    'group2': ['xx', 'xx', 'xx', 'xx', 'xx', 'xy', 'xy'],
    'num1': [1, 1, 1, 1, 1, 4, 3],
    'num2': [2, 2, 2, 3, 3, 6, 7],
}
df = pd.DataFrame(data)

你的尝试代码逻辑有误:transform的lambda函数无法接收两个参数x和y,且代码目的是筛选分组中num1和num2各自唯一值数量都大于1的行,和统计num1与num2的唯一组合数的需求不匹配。

下面是两种正确的实现方式:

方式一:分组后去重计数

result = df.groupby(['group1', 'group2']).apply(
    lambda group: group[['num1', 'num2']].drop_duplicates().shape[0]
).reset_index(name='unique_combinations')

方式二:构造组合列后统计唯一值(更高效)

# 先将num1和num2拼成元组作为组合列
df['comb'] = list(zip(df['num1'], df['num2']))
# 按分组统计组合列的唯一值数量
result = df.groupby(['group1', 'group2'])['comb'].nunique().reset_index(name='unique_combinations')

最终结果

执行后得到的result内容如下:

group1group2unique_combinations
Axx2
Bxy2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:16:17