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

使用pandas替换TimeStamp的hour和minute时触发TypeError报错

问题解决:pd.to_datetime后调用replace报错TypeError: replace() got an unexpected keyword argument 'hour'

错误原因

核心问题是调用对象的类型不匹配:

  • 当df_end_date是pandas Series(哪怕仅包含单个值),pd.to_datetime()返回的是DatetimeSeries,而非单个Timestamp对象。
  • Series自带的replace()方法用于替换元素值,参数是to_replace、value等,并不支持hour、minute这类时间属性参数,因此触发报错。

解决方案

根据df_end_date的类型,选择对应方法:

情况1:df_end_date是单个标量值(如字符串、单个日期)

直接转换为Timestamp后调用replace()即可:

end = pd.to_datetime(df_end_date, dayfirst=True).replace(hour=23, minute=59)

情况2:df_end_date是pandas Series(含单个或多个日期值)

使用dt访问器调用Timestamp的replace()方法,对Series中每个datetime元素批量处理:

end = pd.to_datetime(df_end_date, dayfirst=True).dt.replace(hour=23, minute=59)

替代方案:通过时间偏移实现

无需调用replace(),直接给日期加上对应时长的时间差,同样能得到23:59:00的结果:

end = pd.to_datetime(df_end_date, dayfirst=True) + pd.Timedelta(hours=23, minutes=59)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:43:04