如何在Python中逐行计算数据框的小计?

问题描述 投票:1回答:1

我有以下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
python pandas sum calculated-columns subtotal
1个回答
1
投票

正如Andrej Kesely在评论中所说的那样,您很想进行累加求和。 cumsum是您追求的numpy函数。这应该可以解决问题。

df['Subtotal amount'] = df.amount.cumsum()

贷方为Andrej,我只是将其转为答案

© www.soinside.com 2019 - 2024. All rights reserved.