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

在Pandas中计算相邻行不同列间的差值

解决Pandas中相邻行跨列差值计算的矢量化方案

直接用Pandas的shift()方法就能实现你要的矢量化计算,完全不需要循环,处理数十万行数据毫无压力:

import pandas as pd

# 计算当前行Low - 上一行High
df['Difer'] = df['Low'] - df['High'].shift(1)

原理说明

  • df['High'].shift(1)会将High列的所有行向下偏移一位,第一行自动填充为NaN(因为没有上一行数据)
  • 用Low列直接减去偏移后的High列,得到的就是当前行Low与上一行High的差值,这是Pandas原生的矢量化操作,性能远高于循环

可选:处理第一行的NaN

如果需要对第一行的缺失值进行填充(比如填0),可以加上fillna():

df['Difer'] = df['Low'] - df['High'].shift(1).fillna(0)

你之前用的df['Low'].diff()是计算同列相邻行的差值(当前行Low - 上一行Low),所以不符合需求,而shift()才是跨列相邻行计算的正确姿势。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 13:59:52