我已经阅读了一些先前的问题,但在执行时遇到了麻烦。这是我的桌子。
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个操作。有人可以告诉我熊猫之旅吗?
答案 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