我有以下DF:
import pandas as pd
df = pd.DataFrame([['2020/01/01','A',5],['2020/01/10','B',-2],['2020/01/15','C',3],['2020/01/18','B',9]],columns=['datetime','broker','amount'])
我需要在新列中逐行计算“金额”列的小计...我已经尝试过下面的代码:
df['Subtotal amount'] = df.sum(axis=1, numeric_only=True)
哪个返回以下结果:
datetime broker amount Subtotal amount
0 2020/01/01 A 5 5
1 2020/01/10 B -2 -2
2 2020/01/15 C 3 3
3 2020/01/18 B 9 9
但是我希望逐行计算结果,并从前几行中减去值:
datetime broker amount Subtotal amount
0 2020/01/01 A 5 5
1 2020/01/10 B -2 3
2 2020/01/15 C 3 6
3 2020/01/18 B 9 15
正如Andrej Kesely在评论中所说的那样,您很想进行累加求和。 cumsum是您追求的numpy函数。这应该可以解决问题。
df['Subtotal amount'] = df.amount.cumsum()
贷方为Andrej,我只是将其转为答案