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

如何对DataFrame按唯一ID和Subset分组计算shift(-1)后差值

正确实现需要将shift操作放到groupby分组对象内执行,确保移位仅在相同ID和Subset的分组内部生效,代码如下:

df['New Col'] = df.groupby(['ID', 'Subset'])['Start'].shift(-1) - df['End']

逻辑说明

  • 用groupby(['ID', 'Subset'])将数据按指定字段拆分为独立分组
  • 对每个分组内的Start列执行shift(-1)操作:仅将分组内的行向上偏移一位,每个分组的最后一行偏移后默认返回NaN,不会跨分组取值
  • 偏移后的Start列会自动和原表的End列按索引对齐做减法,完全符合需求的计算规则

如果你的数据没有提前按分组内的时间/位置逻辑排序,建议先执行排序再计算,避免前后行顺序不符合预期:

# 示例为按Start升序排序,可根据实际业务调整排序字段
df = df.sort_values(['ID', 'Subset', 'Start']).reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:27:03