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

Pandas实现DataFrame第二列下移一行并删除首行

解决方案:Pandas实现列下移+删除首行

没问题,这事儿用Pandas几步就能搞定,刚好我之前处理过类似的时序数据对齐需求,直接给你实操代码和解释:

步骤1:构造原始DataFrame(如果你的数据已经存在,这步可以跳过)

先把你提供的原始数据转换成可操作的DataFrame:

import pandas as pd

# 对应你给出的原始数据
df1 = pd.DataFrame({
    'year': [2017, 2018, 2019, 2020, 2021],
    'ER12': [-2.05, 1.05, -0.04, -0.60, -99.99]
})

步骤2:将第二列(ER12)下移一行

用Pandas的shift()方法,参数1表示向下移动一行,移动后第一行的ER12会变成NaN,后续行依次承接上一行的数值:

# 对ER12列执行下移操作
df1['ER12'] = df1['ER12'].shift(1)

步骤3:删除首行并重置索引

这一步直接删掉包含NaN的首行,同时重置索引让结果和你期望的格式一致:

# 删除首行,并用reset_index重置索引(drop=True避免保留旧索引列)
df_final = df1.drop(index=0).reset_index(drop=True)

最终输出结果

运行后打印df_final会得到你想要的结果:

year  ER12
0  2018 -2.05
1  2019  1.05
2  2020 -0.04
3  2021 -0.60

可选的简洁写法

如果想一步到位,也可以把下移和删行合并成一行(不过分开写更清晰):

df_final = df1.assign(ER12=df1['ER12'].shift(1)).iloc[1:].reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 09:57:30