pandas读CSV错误:ParserError: Error tokenizing data. C error: Expected 2 fields in line **
用pandas读取CSV文件时报以下错误:
ParserError: Error tokenizing data. C error: Expected 2 fields in line **
1. 错误的原因
因为读取的是CSV文件,分隔默认采用的是逗号,该错误的可能原因为读取的数据中某一项包含两个字段,即值内可能包含两个逗号。
2. 解决方案
2.1 Pandas 版本低于 0.22.0
当Pandas 版本低于 0.22.0时,通过指定参数,error_bad_lines=False
可以来定位错误的行。
import pandas as pd
data= pd.read_csv('test_file.csv', error_bad_lines=False)
2.1 Pandas 版本大于 0.22.0
然后报以下错误
read_csv() got an unexpected keyword argument 'error_bad_lines
这是因为在Pandas V0.22.0之后,read_csv()
函数的参数error_bad_lines
已经被替换为了on_bad_lines
参数。因此,需要将error_bad_lines
参数改为on_bad_lines
参数,并将值设置为warn
或raise
,分别warn
表示将错误行标记为警告或raise
表示将错误行标记为错误。具体步骤如下:
import pandas as pd
data= pd.read_csv('test_file.csv', on_bad_lines='warn')
之后可以根据警告信息定位test_file.csv文件中的具体错误。修改test_file.csv源文件中的该行后再重新读入即可。