具有条件的其他列的分组依据和计数

时间:2020-09-30 13:02:03

标签: pandas

我有一个数据框:

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

我正在尝试按ID分组并计算“值”列中的出现次数,以使我不计算在内。的,没有的。每组中有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})

但是我认为应该有一个更好的方法。

1 个答案:

答案 0 :(得分:0)

您需要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