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

使用pd.read_excel指定列报错,添加nrows参数后恢复正常

问题分析与解决

报错原因

  • 你的Excel文件尾部(靠近第172034行的位置)大概率存在异常行:比如空行但带有特殊格式、合并单元格残留、或者行内列数和表头行不匹配,导致pandas全量读取时,对列标识的解析出现混乱,错误判定usecols=["B", "C"]参数不符合要求,抛出该错误。
  • 添加nrows=172033后,读取范围排除了最后一行的异常数据,pandas能正常识别列的位置标识,因此读取成功。

验证与修复方案

  1. 检查并清理原文件:打开data/A.xlsx,直接跳转到最后10行左右,查看是否有空白行、格式错乱的单元格或内容异常的行,删除这些行后重新保存文件,再尝试原代码读取。
  2. 跳过尾部异常行(不修改原文件):使用skipfooter参数跳过可能存在问题的尾部行,示例代码:
    df = pd.read_excel('data/A.xlsx', usecols=["B", "C"], skipfooter=1)
    
    可以根据实际情况调整skipfooter的数值,比如先尝试跳过1-5行。
  3. 用回调函数指定列:改用usecols的回调函数形式,明确筛选目标列,避免pandas解析列标识时出错:
    def select_cols(col):
        return col in ["B", "C"]
    df = pd.read_excel('data/A.xlsx', usecols=select_cols)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:20:44