相当于Excel COUNTIFS的熊猫

时间:2019-03-29 17:47:01

标签: pandas

我已经阅读了一些先前的问题,但在执行时遇到了麻烦。这是我的桌子。

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

对于“值”中的每组术语,计算TRUE(在我的df中为布尔值)的出现次数。

在Excel中,您可以执行COUNTIFS个操作。有人可以告诉我熊猫之旅吗?

1 个答案:

答案 0 :(得分:2)

尝试使用groupby转换:

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