首页 > 解决方案 > 使用 pandas 进行 groupby 后的唯一元素总数

问题描述

我想通过分组获得独特元素的总数

示例数据框:

df = pd.DataFrame({'A': ['x', 'x', 'x','x','y']
                , 'B': ['a', 'c', 'c','b','e']
                , 'C': ['1', '2', '2','3','4']})

    A   B   C
0   x   a   1
1   x   c   2
2   x   c   2
3   x   b   3
4   y   e   4

我在下面尝试过,但没有一个能给我预期的结果

df.groupby(['A', 'B']).count()
df.groupby(['A', 'B'])['A'].nunique()
df.groupby(['A', 'B']).agg({"B": "sum"})

预期输出 X:3(唯一值为 a、b、c) Y:1(唯一值为 e)

标签: pandasdataframepandas-groupby

解决方案


按 A 分组,然后计算 B 的唯一值

df.groupby('A').B.nunique()

推荐阅读