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

如何使用Pandas修改DataFrame中1月日期的年份?

解决Pandas仅修改1月日期年份的问题

错误原因

你之前的代码尝试给**整行数据(包含数值类型的data列)**添加日期偏移,导致类型不兼容——数值无法与日期偏移量进行运算,因此触发报错。

正确解决方案

只针对Date列进行修改,避免操作其他无关列:

方法一:使用loc定位+日期偏移量

import pandas as pd
df = pd.DataFrame({'Date': pd.date_range(start = "01-01-2023", end = "12-31-2023"), 'data': 25})

# 仅修改1月数据的Date列年份
df.loc[df['Date'].dt.month == 1, 'Date'] += pd.offsets.DateOffset(years=1)

方法二:直接替换年份(更高效,需注意闰年问题)

如果不需要处理闰年特殊情况,可直接替换年份:

df.loc[df['Date'].dt.month == 1, 'Date'] = df.loc[df['Date'].dt.month == 1, 'Date'].dt.replace(year=2024)

两种方法的区别

  • DateOffset会自动处理闰年:比如原日期是2020年2月29日,加1年会转为2021年2月28日
  • dt.replace是直接替换年份,若原日期是2月29日且目标年份非闰年,会触发报错,需提前验证日期合法性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:25:12