使用 pandas,调用 pd.read_csv
函数读取 csv 文件时,若读取基于分隔符的内容不对时,报类似 pandas.errors.ParserError: Error tokenizing data. C error: Expected 9 fields in line 73, saw 10
错误。
解决方法
针对这个错误,主要有两种解决方式,一种是根据错误提示的行数和列信息找到问题的内容并修复它,然后再重新 run,还有另一种是掩耳盗铃的方式,即忽略掉错误的行数数据,具体如下:
import pandas as pd
data = pd.read_csv('file.csv', error_bad_lines=False)
通过设置 error_bad_lines
参数为 False
后,可以忽略调错误的行数信息,运行程序后也会打印错误行数的详细信息,具体示例如下:
b'Skipping line 73: expected 9 fields, saw 10\nSkipping line 608: expected 9 fields, saw 10\n'
如上控制台打印信息表明,文件中的 73 行和 608 行上数据列数期望是 9,但实际是 10。