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

使用Pandas计算DataFrame的lag列:当前Start减前一行Stop

使用Pandas计算跨列差值

需求说明

需要基于已有DataFrame的Start和Stop列生成新列lag,规则如下:

  • 首行的lag值为NaN
  • 其余行的lag = 当前行Start值 - 上一行Stop值

初始数据定义代码:

import pandas as pd
import numpy as np
df = pd.DataFrame({"Start": [1, 4, 8, 12], "Stop": [2, 6, 9, 13]})

实现方法

利用Pandas的shift()方法获取上一行的Stop值,再与当前行Start做减法运算,即可直接生成目标列:

df['lag'] = df['Start'] - df['Stop'].shift(1)

结果验证

执行上述代码后得到的DataFrame与预期完全一致:

print(df)
# 输出内容:
#    Start  Stop  lag
# 0      1     2  NaN
# 1      4     6  2.0
# 2      8     9  2.0
# 3     12    13  3.0

对应预期输出的DataFrame定义代码:

df = pd.DataFrame({"Start": [1, 4, 8, 12], "Stop": [2, 6, 9, 13],"lag":[np.nan,2,2,3]})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:25:24