我尝试按groupby
列对第二列中的值求值,但同时也考虑第3列的值,df
就像,
id memo amount
1 pos 1.0
1 pos 2.0
1 neg 3.0
2 pos 4.0
2 pos 5.0
2 neg 6.0
2 neg 7.0
我希望按id
分组并加amount
分组,但如果memo
为pos
为neg
,则为正,groupby
为负,例如当1
-1.0 - 2.0 + 3.0 = 0
时,总金额为0,因为df.groupby('id')['amount'].sum()
。
如果我id
,它只考虑amount
和memo
列,我想知道如何在此处考虑id memo amount total_amount
1 pos 1.0 0.0
1 pos 2.0 0.0
1 neg 3.0 0.0
2 pos 4.0 -4.0
2 pos 5.0 -4.0
2 neg 6.0 -4.0
2 neg 7.0 -4.0
。
所以结果看起来像,
multiline.pattern: '^{'
multiline.negate: true
multiline.match: after
答案 0 :(得分:1)
分两步拆分操作,你可以通过
实现你想要的df['temp'] = np.where(df.memo == 'pos', df.amount, -df.amount)
df['total_amount'] = df.groupby('id').temp.transform(sum)