Pandas read_excel读取xlsx文件首行列缺失问题求助
Pandas读取Excel列识别异常问题解决方案
一、调整read_excel参数临时解决
该异常是Pandas 1.1.5版本内置的Excel读取引擎,对存在隐藏格式异常的表头单元格自动识别列数失败导致的,可通过以下参数调整直接修复:
- 强制指定读取引擎为openpyxl,相比旧版默认的xlrd引擎对xlsx格式兼容性更好:
df = pd.read_excel('Book1.xlsx', dtype=str, engine='openpyxl') - 如果仍识别失败,可明确指定读取的列范围,比如确认共5列时可写为:
df = pd.read_excel('Book1.xlsx', dtype=str, engine='openpyxl', usecols="A:E") - 极端情况可先关闭自动表头识别,手动设置列名:
# 不自动识别表头,读取所有行 df = pd.read_excel('Book1.xlsx', dtype=str, engine='openpyxl', header=None) # 手动将第一行设为列名 df.columns = df.iloc[0].tolist() # 跳过表头行取正式数据 df = df[1:].reset_index(drop=True)
二、升级Pandas版本永久修复
该类Excel读取兼容性问题已经在Pandas 1.3版本修复,Python3.7最高支持的Pandas版本为1.3.5,不会出现版本不兼容情况,可按以下方式升级:
Anaconda环境升级(Mac/Windows通用)
- 先激活你部署应用使用的conda环境,示例命令:
conda activate 你的环境名 - 执行升级命令,指定conda-forge源获取最新适配包:
conda install pandas=1.3.5 -c conda-forge
pip方式升级
- 激活对应conda环境后,先升级pip到最新版本:
python -m pip install --upgrade pip - 执行指定版本升级命令:
pip install pandas==1.3.5 --upgrade
升级完成后重新运行测试脚本,即可正常识别所有列。
内容的提问来源于stack exchange,提问作者Anibal Jodorcovsky
相关产品推荐
相关产品推荐

