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

如何为Pandas DataFrame添加基于上一行值累加的新列?

解决方案

你的需求本质是生成一列累加值,初始值为-25,后续每行等于上一行的X值加上当前行的Intervals值。你之前用shift失败的原因是:赋值时Table["X"]尚未完全初始化,shift(1)无法获取到已赋值的前一行数据,最终除第一行外都会得到NaN。

推荐两种高效的实现方式:

方法一:利用cumsum(推荐,性能最优)

直接对Intervals列计算累加和,再加上初始值-25即可,完全匹配你的需求:

Table["X"] = -25 + Table["Intervals"].cumsum()

验证逻辑:

  • 第1行:-25 + 0 = -25(符合初始值要求)
  • 第2行:-25 + (0+4) = -21(即上一行X+当前Intervals)
  • 第3行:-25 + (0+4-1) = -22(同上逻辑)
    以此类推,完全符合你的累加规则。

方法二:循环赋值(适合复杂自定义逻辑)

如果后续需要更复杂的累加规则,可以用循环逐行计算:

# 初始化X列
Table["X"] = 0
# 设置第一行初始值
Table.loc[0, "X"] = -25
# 从第二行开始循环计算
for idx in range(1, len(Table)):
    Table.loc[idx, "X"] = Table.loc[idx-1, "X"] + Table.loc[idx, "Intervals"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:35:25