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

将DataFrame月末日期转下月初时,DatetimeArray与relativedelta相加报错

问题原因及解决方法

核心原因

你遇到的报错本质是数据类型不兼容:

  • 报错场景中,pd.to_datetime(df_actual.Month_Next)返回的是pandas的DatetimeArray(即datetime64类型的数组列),而relativedelta是dateutil库的标量时间偏移对象,它不支持直接和整个DatetimeArray做加法运算。
  • 另一个能正常运行的Notebook里,Month_Next列的每个元素都是单个Timestamp对象(标量),此时+ relativedelta是对Series里的每个Timestamp标量逐个运算,所以能正常执行。

解决方法

有两种简单的修正方式:

  1. 用pandas原生的DateOffset替代relativedelta,它支持直接和DatetimeArray/Series做向量运算:
df_actual.Month_Next = pd.to_datetime(df_actual.Month_Next) + pd.DateOffset(months=1, day=1)
  1. 对Series的每个元素单独处理,用apply遍历每个Timestamp:
from dateutil.relativedelta import relativedelta

df_actual.Month_Next = pd.to_datetime(df_actual.Month_Next).apply(lambda x: x + relativedelta(months=1, day=1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:10:30