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

如何用Python为数据集新增上一匹配年份、下一匹配年份两个新列

解决方法

我们可以用pandas的分组位移函数shift()实现需求,完整代码如下:

import pandas as pd
import numpy as np

# 构造示例数据表
df = pd.DataFrame({
    'NAME': ['Foo', 'Foo', 'Foo', 'Bar', 'Bar'],
    'YEAR': [2012, 2017, 2022, 2015, 2014],
    'COUNT': [0, 1, 2, 0, 2]
})

# 按名称分组、按年份升序排序,保证前后年份顺序正确
df = df.sort_values(['NAME', 'YEAR']).reset_index(drop=True)

# 计算Prior列:同分组上一个年份,计数为0时设为NaN
df['Prior'] = df.groupby('NAME')['YEAR'].shift(1)
df.loc[df['COUNT'] == 0, 'Prior'] = np.nan

# 计算Next列:同分组下一个年份,无下一个年份时用当前年份+4填充
df['Next'] = df.groupby('NAME')['YEAR'].shift(-1)
df['Next'] = df['Next'].fillna(df['YEAR'] + 4)

# 可按需修改列名匹配你的输出要求
df.columns = ['Name', 'Year', 'Count', 'Prior', 'Next']

print(df)

运行代码后输出结果与需求逻辑完全匹配,你可以直接替换示例数据为你自己的数据集即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:18:01