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

使用pd.read_csv()无法打开部分.csv文件的问题求助

解决pandas读取CSV时的ParserError(字段数不匹配)问题

这个错误是因为CSV文件的第8836行字段数和前面行不一致,pandas默认的C解析器严格要求每行字段数相同,以下是几种可行的解决办法:

  • 跳过错误行:如果不需要保留有问题的行,直接用on_bad_lines='skip'参数跳过不符合格式的行:

    import pandas as pd
    df = pd.read_csv('test.csv', on_bad_lines='skip')
    
  • 使用Python解析引擎:Python引擎比默认的C引擎解析规则更宽松,能容忍部分格式不一致:

    df = pd.read_csv('test.csv', engine='python')
    
  • 指定固定列数:如果明确知道文件应该有4个字段,用usecols参数强制只读取前4列,忽略多余的字段:

    df = pd.read_csv('test.csv', usecols=range(4))
    
  • 自定义错误行处理:如果需要保留错误行的数据,可以自定义函数处理异常行,比如将多余字段合并到最后一列:

    def process_bad_line(line):
        # line是当前行拆分后的字段列表,这里将第5个及以后的字段合并到第4个
        if len(line) > 4:
            return line[:4] + [' '.join(line[4:])]
        return line
    
    df = pd.read_csv('test.csv', on_bad_lines=process_bad_line)
    
  • 检查文件格式细节:先定位错误行查看具体问题,比如是否有未加引号的逗号(比如字段内容包含逗号):

    with open('test.csv', 'r', encoding='utf-8') as f:
        # 行号从0开始,8836行对应索引8835
        for idx, line in enumerate(f):
            if idx == 8835:
                print("错误行内容:", line)
                break
    

    如果是字段包含逗号未加引号,可指定quotechar参数解析:

    df = pd.read_csv('test.csv', quotechar='"')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:40:38