列出使用pd.read_csv()时的所有Pandas ParserError



我有一个多行csv,产生以下错误:

df1 = pd.read_csv('df1.csv',  skiprows=[176, 2009, 2483, 3432, 7486, 7608, 7990, 11992, 12421])
ParserError: Error tokenizing data. C error: Expected 52 fields in line 12541, saw 501

您可能已经注意到,我有多行代码会产生ParserError。

为了解决这个问题,我只是更新'skiprows'以包含错误并继续解析csv。我有超过3万行代码,我宁愿一次完成所有这些,而不是在Jupyter Notebook中点击run,得到一个新的错误,然后更新。否则,我希望它能跳过错误并解析其余的,我已经尝试过用这种方式搜索解决方案-但是所有的SO响应对我来说太复杂了,无法为我的数据结构遵循和复制。

注:为什么当使用只有一行的skiprows时,比如177,我可以输入skiprows = 177,但是当使用带有列表的skiprows时,我必须做skiprows = '错误行- 1'?为什么计数会改变?

熊猫≥1.3

应使用read_csv(pandas≥1.3.0)的on_bad_lines参数

df1 = pd.read_csv('df1.csv', on_bad_lines='warn')

这将跳过无效行并给您一个警告。如果你使用on_bad_lines='skip',你跳过行没有警告。on_bad_lines='error'的默认值会在第一个问题上引发错误并终止。

熊猫& lt;1.3

参数为error_bad_lines=Falsewarn_bad_lines=True

最新更新