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

将DataFrame中int64类型日期列转为datetime类型时异常求助

解决Excel风格日期转datetime显示1970-01-01的问题

你的date列存储的是Excel风格的日期数值(从1900年1月1日起算的天数),而非%Y%m%d格式的整数(如20240520),用format='%Y%m%d'解析会导致小数值被误判为远早于Unix纪元的日期,最终显示为1970-01-01。

正确转换方法

  • 基础转换(适用于1900-03-01及以后的日期):
transac['date'] = pd.to_datetime(transac['date'], unit='D', origin='1900-01-01')
  • 兼容1900-02-28之前的日期(修复Excel的闰年bug):
# 对数值≥60的日期减1,修正Excel的1900闰年错误
transac['date'] = pd.to_datetime(
    transac['date'] - (transac['date'] >= 60).astype(int),
    unit='D',
    origin='1900-01-01'
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:37:02