熊猫相当于Excel COUNTIFS



我已经阅读了一些以前的问题,但在实施时遇到了问题。这是我的桌子。

Value Bool
abc   TRUE
abc   TRUE
bca   TRUE
bca   FALSE
asd   FALSE
asd   FALSE

我想要这个:

Value  Bool  Count
abc    TRUE  2
abc    TRUE  2
bca    TRUE  1
bca    FALSE 1
asd    FALSE 0
asd    FALSE 0

对于 Value 中的每组项,计算 TRUE 的出现次数,TRUE 是我的 df 中的布尔值。

在Excel中,您可以执行COUNTIFS来执行此操作。有人可以给我指路吗?

尝试使用分组变换:

df['Count']=df.groupby('Value')['Bool'].transform('sum')
print(df)
  Value   Bool  Count
0   abc   True    2.0
1   abc   True    2.0
2   bca   True    1.0
3   bca  False    1.0
4   asd  False    0.0
5   asd  False    0.0

或:

df['Count']=df.groupby('Value')['Bool'].transform(lambda x: x.sum())
print(df)
  Value   Bool  Count
0   abc   True      2
1   abc   True      2
2   bca   True      1
3   bca  False      1
4   asd  False      0
5   asd  False      0

最新更新