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

Pandas如何将微秒级Unix时间戳转换为datetime并设置为索引

微秒级Unix时间戳转Pandas datetime解决方案

报错原因

你传入的1632527998056329为16位微秒粒度Unix时间戳,而你代码中指定的unit='ms'仅适配13位毫秒级时间戳,用毫秒单位解析微秒级数值会得到远超出Pandas datetime支持范围(上限为2262年)的结果,因此触发越界报错。

正确转换代码

直接将unit参数改为微秒对应的取值us即可:

import pandas as pd

# 转换微秒时间戳列为datetime格式
data['local_timestamp'] = pd.to_datetime(data['local_timestamp'], unit='us')
# 将转换后的时间列设置为索引
data.set_index('local_timestamp', inplace=True)

测试你的示例时间戳,执行pd.to_datetime(1632527998056329, unit='us')会返回正确结果Timestamp('2021-09-24 23:59:58.056329'),无报错。

可选兼容方案

如果你的数据中存在混合粒度的时间戳,也可以先将数值统一转换为秒级再解析,精度不会丢失:

data['local_timestamp'] = pd.to_datetime(data['local_timestamp'] / 1000000, unit='s')

常见Unix时间戳粒度对应unit参数对照表

  • 10位秒级时间戳:unit='s'
  • 13位毫秒级时间戳:unit='ms'
  • 16位微秒级时间戳:unit='us'
  • 19位纳秒级时间戳:unit='ns'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:06:04