Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

python pandas 读取 csv 文件报 pandas.errors.ParserError: Error tokenizing data. C error: Expected 9 fields in line 73, saw 10 错误

Python 笔记 Python 笔记


python 使用 pandas,调用 pd.read_csv 函数读取 csv 文件时,如果读取基于分割符的内容不对时(如列数和头部 schema 不匹配等),会报类似 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。