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

使用pd.to_datetime指定unit='D'报错,无该参数正常,求原因及解决

问题原因与解决方案

核心问题

unit='D' 参数的作用是告诉pandas:你传入的是一个数值(整数/浮点数),代表从1970-01-01 UTC开始计算的天数。但你传入的是字符串格式的日期'2022-01-01',这和unit参数的使用场景完全冲突——pandas无法把日期字符串当成天数数值来解析,因此触发错误。

正确用法

根据你的需求,分两种情况处理:

  • 如果输入是日期字符串:直接调用pd.to_datetime('2022-01-01')即可,pandas会自动识别日期格式,无需指定unit。
  • 如果一定要用unit='D':需要传入该日期距离1970-01-01的天数数值。比如2022-01-01对应的天数是18993,执行以下代码就能得到正确结果:
    pd.to_datetime(18993, unit='D')
    

为什么不加unit就正常?

当不指定unit时,pandas会自动检测输入类型:如果是日期格式的字符串,就会按照日期解析逻辑处理;如果是数值,才会默认用unit='ns'(纳秒)来解析。所以不加unit时,字符串输入能被正确识别。

内容的提问来源于stack exchange,提问作者principal-ideal-domain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:10:49