python - 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相应的列
如果这是一个令人困惑的问题,我会道歉,我会尽可能地澄清
谢谢!
解决方案
你可以使用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
或者,如果您只想amount
和another_amount
:
df.loc[:, ['amount', 'another_amount']] = df.loc[:, ['amount', 'another_amount']].cumsum()
推荐阅读
- pandas - ModuleNotFoundError:databricks 中没有名为“xlsxwriter”的模块
- python - 在Python中以模糊方式匹配一个数字
- reactjs - 我如何将反应数据发送到快递后端?
- python - 通过正则表达式替换字符串,同时排除带引号的字符串
- workbox - Workbox - 使用 setCatchHandler 时返回什么?
- angular - Ionic 5 Angular:iOs Simulator 中的 Google Maps InfoWindow 填充问题
- c# - 如何从其他类中的函数调用本地方法
- java - 在 Java 中进行多个异步调用时如何忽略失败的 CompletableFuture 调用?
- panel - 我应该使用哪种型号?xtlogit 或 xtprobit
- android - 如何获取 SD 卡大小?