如何用Python Pandas将10位时间戳转换为标准日期格式?
解决Excel中10位时间戳转标准日期格式的问题
问题根源
pd.to_datetime 默认解析13位毫秒级时间戳,而你的数据是10位秒级时间戳(含小数的是带毫秒的秒级格式),未指定unit参数会导致解析失败。
具体解决方案
假设你的DataFrame名为df,包含订单日期和采购日期列,按以下步骤操作:
1. 读取Excel文件
import pandas as pd df = pd.read_excel("你的文件路径.xlsx")
2. 解析时间戳为datetime类型
必须指定unit='s'来声明这是秒级时间戳:
# 处理带小数的订单日期(保留毫秒精度) df["订单日期"] = pd.to_datetime(df["订单日期"], unit='s') # 处理整数型采购日期(自动补全时分秒为0) df["采购日期"] = pd.to_datetime(df["采购日期"], unit='s')
3. 格式化为目标字符串格式
- 转成
dd/mm/yyyy hh:mm格式:
df["订单日期_格式化"] = df["订单日期"].dt.strftime("%d/%m/%Y %H:%M") df["采购日期_格式化"] = df["采购日期"].dt.strftime("%d/%m/%Y %H:%M")
- 转成
dd/mm/yyyy格式:
df["订单日期_格式化"] = df["订单日期"].dt.strftime("%d/%m/%Y") df["采购日期_格式化"] = df["采购日期"].dt.strftime("%d/%m/%Y")
额外注意事项
- 如果时间戳对应时区非UTC,可添加时区参数调整(如东八区):
df["订单日期"] = pd.to_datetime(df["订单日期"], unit='s', tz='Asia/Shanghai')
- 若时间戳列是字符串类型,先转为数值型:
df["订单日期"] = pd.to_numeric(df["订单日期"], errors='coerce')
内容的提问来源于stack exchange,提问作者user13617491
相关产品推荐
相关产品推荐

