首页 > 解决方案 > Pandas 在多列上滚动总和

问题描述

我有一个按以下结构配置的熊猫数据框:

   date  amount  another_amount  name
0   1/1       5               6  dave
1   2/1       3               4  dave
...
2  12/1       7              10  dave

我如何将前一行的值与 amount 和 another_amount 相加,直到最后一行将具有整个数据帧的总和?

因此,例如,2/1 行将有 8 (5+3) 的数量和 10 (6+4) 用于 another_amount,然后 3/1 行将包含该行包含的任何内容加上之前的总和 8 和 10相应的列

如果这是一个令人困惑的问题,我会道歉,我会尽可能地澄清

谢谢!

标签: pythonpandas

解决方案


你可以使用cumsum

df.iloc[:, 1:-1] = df.iloc[:, 1:-1].cumsum()

print(df)

输出

   date  amount  another_amount  name
0   1/1       5               6  dave
1   2/1       8              10  dave
2  12/1      15              20  dave

或者,如果您只想amountanother_amount

df.loc[:, ['amount', 'another_amount']] = df.loc[:, ['amount', 'another_amount']].cumsum()

推荐阅读