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

yfinance返回Pandas DataFrame的13位Unix时间戳列转datetime失败如何解决

代码运行失败的核心原因
  • 第一,Python标准库的datetime.fromtimestamp()仅支持传入单个数值类型的时间戳,你传入的df['UnixDate']是pandas Series结构(整列数据),标准库方法不支持批量处理这种结构,直接调用必然报错。
  • 第二,你对时间戳精度的判断有误:13位Unix时间戳是毫秒级精度,不是秒级,就算你用循环逐行调用datetime.fromtimestamp(),转换出来的时间也会和实际时间完全不符。
正确实现方案

直接使用pandas原生提供的pd.to_datetime()方法即可,该方法原生支持整列批量转换,还可以直接指定时间戳的单位,无需额外处理,代码如下:

# 13位毫秒级时间戳指定unit为ms,按需调整strftime的格式参数即可
df['DateCol'] = pd.to_datetime(df['UnixDate'], unit='ms').dt.strftime('%Y-%m-%d')

如果需要datetime类型的列而非字符串格式,删除末尾的.dt.strftime('%Y-%m-%d')部分即可。

你之前调整datetime导入语句的操作没有必要,代码运行失败和导入写法完全无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:54:03