使用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
相关产品推荐
相关产品推荐

