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

pandas转换纪元时间为带时区datetime出现1970年异常问题咨询

错误原因

你设置的unit参数单位不符合实际时间戳的精度:
你提供的示例时间戳为16位整数,属于微秒级纪元时间(即从UTC 1970-01-01 00:00:00起累计的微秒数),而你代码中指定的unit="ns"是纳秒级精度,1微秒等于1000纳秒,直接按纳秒解析会得到仅为实际值1/1000的时间长度,最终解析结果自然对应1970年的错误日期。

修复方案

直接修改unit参数为微秒单位us即可,修改后的代码如下:

df['time'] = pd.to_datetime(df['time'], unit="us", utc=True)

验证结果

以你给出的第一个示例值1602206700206666为例,用上述代码解析后得到的结果为2020-10-09 02:45:00.206666+00:00,完全符合你预期的2020年10月的时间范围。

补充:纪元时间单位对应位数参考

你可以根据时间戳的整数位数快速判断对应精度:

  • 10位:秒级,对应unit="s"
  • 13位:毫秒级,对应unit="ms"
  • 16位:微秒级,对应unit="us"
  • 19位:纳秒级,对应unit="ns"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:18:02