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

Pandas使用on_bad_lines参数时触发ValueError的问题排查与修复

Pandas使用on_bad_lines参数时触发ValueError的问题排查与修复

这个报错的核心原因几乎可以确定是你的Pandas版本低于1.4.0——尽管你提到on_bad_lines的函数选项是1.4.0及以上才支持的,但你的运行环境里的Pandas版本大概率没达到这个要求。

在Pandas 1.4.0之前,on_bad_lines参数只接受字符串取值(可选'skip'、'warn'、'error'),不支持传入自定义函数,所以当你传入handle_bad_line这样的函数时,就会触发ValueError。

排查与修复步骤:

  1. 检查当前Pandas版本
    先运行以下代码确认你的Pandas版本:

    import pandas as pd
    print(pd.__version__)
    

    如果输出的版本号小于1.4.0,就坐实了版本问题。

  2. 升级Pandas到符合要求的版本
    根据你的包管理工具,执行对应的升级命令:

    • 使用pip升级:
      pip install --upgrade pandas
      
    • 使用conda升级(如果你用Anaconda/Miniconda环境):
      conda update pandas
      
  3. 验证修复效果
    升级完成后,重新运行你原来的代码:

    import pandas as pd
    
    def handle_bad_line(bad_line: list[str]) -> list[str] | None:
        # Do something with the bad line, e.g., print it or modify it
        print("Bad line:", bad_line)
        # Return a modified line (if needed) or None to skip it
        return None  # Skip the bad line
    
    df = pd.read_csv("DataFile.csv", engine="python", on_bad_lines=handle_bad_line)
    

    此时on_bad_lines应该能正常识别你的自定义处理函数,不会再触发报错。

补充说明

正如你引用的官方文档所述,自定义函数作为on_bad_lines参数的用法仅在Pandas 1.4.0+且使用engine='python'时才支持,所以确保版本达标是解决这个问题的关键。

备注:内容来源于stack exchange,提问作者nam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 14:48:12