Skip to main content
 首页 » 编程设计

python之Pandas 计算每一行的总和

2025年05月04日21wayfarer

或如何计算每次预订的账户余额。

我有一个账户中每笔交易的数据框,其中交易金额只是列中的正数或负数。此外,我还有当前账户余额。

我想做的是在我的数据框中添加一个 balance 列,用于存储每次预订后的当前余额。

                            amount 
bookingDate                         
2016-10-25 00:00:00+00:00   8424.09 
2016-10-26 00:00:00+00:00  -3264.72 
2016-10-27 00:00:00+00:00    -27.50 
2016-10-28 00:00:00+00:00   -611.85 
2016-10-31 00:00:00+00:00   -248.40 
2016-11-01 00:00:00+00:00   323.37 

假设 2016-10-25(+8424.09 之后)的余额为 5000,所以我预计会是这样的:

                            amount     balance 
bookingDate     
2016-10-25 00:00:00+00:00   8424.09    5000 
2016-10-26 00:00:00+00:00  -3264.72    1735.28 
2016-10-27 00:00:00+00:00    -27.50    1707.78 
2016-10-28 00:00:00+00:00   -611.85    1095.93 
2016-10-31 00:00:00+00:00   -248.40     847.53 
2016-11-01 00:00:00+00:00    323.37    1170.90 

在 pandas 中这样做的最佳方法是什么?我如何考虑账户余额的可变起始金额?

请您参考如下方法:

您可以使用 pd.Series.cumsum , 添加您的起始余额并扣除初始金额:

df['Balance'] = df['amount'].cumsum() + 5e3 - df['amount'].iloc[0] 
 
print(df) 
 
              amount  Balance 
bookingDate                   
2016-10-25   8424.09  5000.00 
2016-10-26  -3264.72  1735.28 
2016-10-27    -27.50  1707.78 
2016-10-28   -611.85  1095.93 
2016-10-31   -248.40   847.53 
2016-11-01   -323.37   524.16