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

使用pd.to_datetime转换Unix时间戳异常求助

解决Unix时间戳转datetime时显示1970年初时间的问题

嘿,这个问题我之前也碰到过!核心原因是你没指定时间戳的单位——pd.to_datetime默认会把传入的数值当成纳秒级的Unix时间戳来解析,但你的时间戳实际是秒级的,所以才会得到1970年1月1日刚过1秒多的结果。

直接修改代码,加上unit='s'参数就能搞定:

df1["Date"] = pd.to_datetime(df1["Date"], origin='unix', unit='s')

为啥会这样?

Unix时间戳的标准定义是从1970-01-01 00:00:00 UTC开始计算的秒数,比如你的1521673397对应的是2018年3月21日左右的时间。但如果不指定unit,pandas会默认按纳秒处理:1521673397纳秒 = 1.521673397秒,转换后自然就是1970年1月1日凌晨刚过1秒多的时间啦。

你可以单独测试一个时间戳验证效果:

import pandas as pd
print(pd.to_datetime(1521673397, origin='unix', unit='s'))
# 输出示例:2018-03-21 03:43:17

内容的提问来源于stack exchange,提问作者Jose Tomas Marquez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:33:52