Pandas读取xlsx文件不完整仅读最后两列,如何解决?
Pandas读取Excel仅加载最后两列、其余列NaN的问题排查与修复
可能的原因
- Excel单元格格式异常:前几列单元格被设置了特殊格式(比如自定义格式为
;;;,会隐藏单元格内容,Pandas读取时直接识别为NaN) - 读取参数配置问题:
read_excel的默认参数可能意外触发列过滤,比如header参数指定错误导致表头识别偏移,或者隐性启用了列筛选规则 - 依赖库兼容问题:openpyxl、xlrd等Excel读取引擎版本过低,对部分Excel格式解析存在bug
修复方案
1. 检查并重置Excel单元格格式
打开目标Excel文件,选中所有列,设置单元格格式为「常规」,保存后重新读取。这能解决因格式隐藏导致的NaN问题。
2. 显式配置读取参数
- 强制指定表头行,确保Pandas正确识别列名:
Books_ToRead = pd.read_excel("ORO_Project.xlsx", sheet_name="Books", header=0)
- 直接指定需要读取的列(避免隐性过滤):
Books_ToRead = pd.read_excel("ORO_Project.xlsx", sheet_name="Books", usecols=["Book Name", "其他需要的列名"])
- 更换读取引擎(针对xlsx文件推荐用openpyxl):
Books_ToRead = pd.read_excel("ORO_Project.xlsx", sheet_name="Books", engine="openpyxl")
3. 更新依赖库
执行以下命令更新Pandas及相关读取引擎,修复版本兼容问题:
pip install --upgrade pandas openpyxl xlrd
内容的提问来源于stack exchange,提问作者ankopan
相关产品推荐
相关产品推荐

