在我的熊猫面板中,我有两列,“ id”和“ amount”。同样的ID,也有多个交易。 “金额”列中可以有正值和负值。现在,我想对所有ID为负的所有ID进行分组并计数。我该如何实现?
答案 0 :(得分:0)
通过比较lt
(<
)和合并sum
来创建布尔掩码,True
的值类似于1
s的过程:
df = pd.DataFrame({
'id': ['a','a','a','a','b','b','b','c','c'],
'amount': [-4,-5,6,7,1,-2,3,4,8]
})
print (df)
id amount
0 a -4
1 a -5
2 a 6
3 a 7
4 b 1
5 b -2
6 b 3
7 c 4
8 c 8
df1 = df['amount'].lt(0).groupby(df['id']).sum().astype(int).reset_index(name='count')
或通过id
列创建索引,并仅按sum
(索引)使用level=0
:
df1 = df.set_index('id')['amount'].lt(0).sum(level=0).astype(int).reset_index(name='count')
print (df1)
id count
0 a 2
1 b 1
2 c 0