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

Pandas read_excel()读取xlsb文件时返回错误日期值问题求助

问题根因

你输出的44424不是随机数值,是Excel的序列日期值,代表从1900年1月1日到目标日期的累计天数。pandas读取xlsb格式文件时默认不会自动将该类数值解析为日期格式,因此会直接输出原始数值。

解决方法

方法1:读取文件时直接解析日期

读取时通过parse_dates参数指定需要解析为日期的列,直接得到日期类型数据:

import pandas as pd
# 提前安装依赖:pip install pyxlsb
xls = pd.ExcelFile('abc.xlsb', engine='pyxlsb')
# 读取时指定解析Reporting Date列为日期格式
df = pd.read_excel(xls, 'xyz_sheetname', parse_dates=['Reporting Date'])
# 转换为你需要的 日-月缩写-年 格式
df['Reporting Date'] = df['Reporting Date'].dt.strftime('%d-%b-%y')
print(df['Reporting Date'])

输出结果即为16-Aug-21。如果后续需要导出为CSV,直接调用df.to_csv()即可保留该日期格式。

方法2:已读取为数值后再转换

如果数据已经加载为DataFrame,也可以直接对数值列做日期转换:

# origin设置为1899-12-30是为了兼容Excel的日期计算规则
df['Reporting Date'] = pd.to_datetime(df['Reporting Date'], unit='D', origin='1899-12-30').dt.strftime('%d-%b-%y')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:48:04