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

如何在pandas DataFrame中对日期列按月增量并更新数据

报错原因

当前DataFrame的date列存储值为字符串格式,并非pandas支持日期运算的datetime类型对象,字符串无法直接与pd.DateOffset日期偏移对象做拼接/算术运算,因此触发类型报错。

修复方案

先将字符串格式的日期列转换为pandas datetime类型,再执行自定义月数的偏移计算,最后将计算结果赋值回原列即可完成更新,具体操作步骤如下:

  • 调用pd.to_datetime()方法将date列从字符串转换为标准日期类型
  • 传入自定义的月数参数构建DateOffset对象,和转换后的日期列做加法运算
  • 将运算结果重新赋值给df['date'],覆盖原有值

完整可运行代码:

import pandas as pd

# 构建原始数据集
df = pd.DataFrame({'num_posts': [4, 6, 3, 9, 1, 14, 2, 5, 7, 2],
                   'date': ['2020-08-09', '2020-08-25', 
                            '2020-09-05', '2020-09-12', 
                            '2020-09-29', '2020-10-15',
                            '2020-11-21', '2020-12-02', 
                            '2020-12-10', '2020-12-18']})

# 自定义需要增加的月数
plus_month_period = 1

# 类型转换+日期偏移+结果赋值
df['date'] = pd.to_datetime(df['date']) + pd.DateOffset(months=plus_month_period)

# 查看更新后的结果
print(df)

补充说明:转换为datetime类型后,pandas会自动处理跨年月的日期偏移逻辑,例如原日期2020-12-18加1个月后会正确返回2021-01-18,无需手动处理年份进位。如果后续需要做时间维度的筛选、分组、聚合,保留datetime类型也会比字符串类型更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:06:58