You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame中实现动态累计求和(避免循环)

解决方案:DataFrame累计求和优化实现

问题描述

我有如下DataFrame:

Week Total
1     5
2     6
3     10

我希望将Week 2的Total值改为Week1+Week2的原Total值,Week3的Total值改为Week1+Week2+Week3的原Total值。由于我的DataFrame规模更大,且Week的数量会动态变化,因此简单的手动加法不可行。我原本考虑用循环遍历每个Week,通过当前Week数减去最小Week数来确定需要累加的次数,但这种方法不够简洁。请问有没有更优的解决方案?

最优解决方案

直接使用pandas内置的cumsum()方法即可高效实现需求,无需手动循环。该方法会对指定列进行顺序累计求和,自动适配任意数量的Week行,完全满足动态数据的处理需求。

代码示例

假设你的DataFrame变量名为df,执行以下代码:

df['Total'] = df['Total'].cumsum()

执行结果

处理后的DataFrame将变为:

Week Total
1     5
2     11
3     21

额外说明

如果你的Week列存在乱序情况,建议先按Week排序再执行累计求和,保证计算逻辑的准确性:

# 按Week升序排序并重置索引
df = df.sort_values('Week').reset_index(drop=True)
# 执行累计求和
df['Total'] = df['Total'].cumsum()

内容的提问来源于stack exchange,提问作者user2876983

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:33:32