Visual Studio Python数据科学教程运行异常 read_csv报ParserError

报错根因
这个ParserError是pandas调用read_csv读文件时的字段数不匹配错误:pandas默认以逗号为分隔符,根据读取到的前几行判断整份文件应该只有1列,但读到第3行时按逗号切出了2个字段,和预期字段数冲突直接终止解析。
排查&解决方法
- 第一步先直接用纯文本编辑器(不要用Excel,会自动转义格式)打开
data.csv,定位到第3行检查:- 第3行是否误输入了多余的逗号,带出了不属于这列的内容
- 文件前2行是否是备注、空行等非结构化内容,不是真实的表格数据
- 文件实际分隔符是不是不是逗号(常见的有制表符、分号、空格分隔)
- 对应不同场景修改读取代码即可:
- 分隔符不匹配的情况:显式指定分隔符,不确定的话可以开自动识别
# 制表符分隔用这个 data = pd.read_csv('data.csv', sep='\t') # 自动识别分隔符用这个 data = pd.read_csv('data.csv', sep=None, engine='python')- 开头有多余非数据行的情况:跳过指定行数再读
# 比如前2行是无关备注,就跳过前2行 data = pd.read_csv('data.csv', skiprows=2)- 文件无表头、第一行就是数据的情况:关闭默认表头识别逻辑
data = pd.read_csv('data.csv', header=None)- 仅个别行格式错误、想跳过坏行保留正确数据的情况(pandas 1.3及以上版本支持):
data = pd.read_csv('data.csv', on_bad_lines='skip')
内容的提问来源于stack exchange,提问作者ActionON
相关产品推荐
相关产品推荐

