使用pd.to_datetime转换毫秒时间戳失败的问题求助
解决毫秒级时间戳字符串转日期的问题
问题原因
你当前的代码用format='%Y-%m-%d'去解析毫秒级时间戳字符串,这个格式是用来匹配年-月-日形式的日期字符串的,和时间戳格式完全不匹配,因此触发格式错误。
正确转换步骤
要处理字符串类型的毫秒级时间戳,需要先将其转为数值类型,再指定时间戳单位为毫秒进行解析:
- 转换时间戳字符串为整数(可选,pandas也能直接解析字符串型时间戳,但转为整数更稳妥)
- 使用
pd.to_datetime的unit='ms'参数指定时间戳单位为毫秒 - 提取日期部分(如果需要)
代码示例
import pandas as pd # 模拟你的数据集 data = { 'secCode': ['003816'], 'secName': ['xxx name'], 'announcementTitle': ['2024report'], 'announcementId': ['1222913141'], 'announcementTime': ['1743004800000'] } df = pd.DataFrame(data) # 正确的转换代码 df['announcementTime'] = pd.to_datetime(df['announcementTime'].astype(int), unit='ms').dt.date print(df['announcementTime']) # 输出:0 2025-04-26 # Name: announcementTime, dtype: object
补充说明
- 如果你的时间戳是秒级(比如1743004800),则把
unit='ms'改成unit='s'即可 - 若不想转为整数,也可以直接传入字符串型时间戳,pandas会自动识别,但指定
unit参数能提升解析效率
内容的提问来源于stack exchange,提问作者user824624
相关产品推荐
相关产品推荐

