首页 > 解决方案 > 有条件的其他列的分组和计数

问题描述

我有一个数据框:

id    value
A       1 
A       0
A       1 
B       1
B       1
C       0

我正在尝试按 id 分组并计算 value 列中的出现次数,以便我算不上。一个和没有。每组0个:

id   No. of 1's   No of 0's
A    2             1
B    1             0
C    0             1

我知道一种分组和使用聚合函数的方法

df.groupby('id').agg({'value': xxx})

但我认为应该有更好的方法来做到这一点。

标签: pandas

解决方案


你需要unstackadd_prefix/suffix

df.groupby(["id", "value"])["value"].count().unstack(1).fillna(0).add_prefix(
    "counts_of_"
).add_suffix("'s")


value  counts_of_0's  counts_of_1's
id                                 
A                1.0            2.0
B                0.0            2.0
C                1.0            0.0

推荐阅读