使用pandas读取xlsb文件时如何将Excel整数日期转为标准日期格式
问题原因
Excel存储的日期是从基准日开始计数的天数序列号,和Unix时间戳的计数规则完全不同,你之前尝试的unit参数是用于Unix时间戳转换,format参数是用于字符串格式的日期解析,因此都不适用。
正确转换代码
直接使用pd.to_datetime的origin参数适配Excel日期规则即可,是向量化运算,处理数万行数据无性能压力:
# 适配Windows版Excel默认的1900日期系统(绝大多数场景使用该配置) df['Date'] = pd.to_datetime(df['Date'], unit='D', origin='1899-12-30')
如果是苹果版Excel生成的文件,默认使用1904日期系统,替换为如下代码即可:
# 适配苹果版Excel默认的1904日期系统 df['Date'] = pd.to_datetime(df['Date'], unit='D', origin='1904-01-01')
效果验证
针对你给出的示例数据,转换后输出如下:
Date 0 2021-08-01 1 2021-08-01 2 2021-08-02 3 2021-08-02 4 2021-08-03
完全符合需求。
内容的提问来源于stack exchange,提问作者piseynir
相关产品推荐
相关产品推荐

