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

pandas如何在apply函数中获取shift偏移值实现跨行计算新列

正确实现方式

使用numpy.where做向量化条件判断,配合pandas原生的整列shift操作即可实现需求,无需自定义函数、行级apply或临时列:

import numpy as np

df['C'] = np.where(
    df['A'].shift() > df['A'],
    df['B'] + df['B'].shift(),
    # 下方替换为你的else分支计算逻辑
    ...
)

# 如需要处理首行空值(shift后首行无上游数据返回NaN),可追加fillna指定默认值
# df['C'] = np.where(...).fillna(首行默认值)

特性说明

  • 完全采用pandas向量化运算,性能远高于逐行遍历/行级apply,符合pandas最佳编码实践
  • 全程无临时列创建、无全量数据集拷贝,仅在原DataFrame上新增目标列C
  • numpy.where天然支持逐元素的条件判断,解决了原生Pythonif无法直接处理布尔Series的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:27:05