解决:: Error tokenizing data. C error: Expected 2 fields in line 18, saw 4

时间:2024-10-21 12:26:01

解决Python进行pd.read_csv出现:: Error tokenizing data. C error: Expected 2 fields in line 18, saw 4

文章目录

  • 一、问题描述
  • 二、解决思路
  • 三、解决方法

一、问题描述

在进行Python进行pd.read_csv,出现:

pandas.errors.ParserError: Error tokenizing data. C error: Expected 2 fields in line 18, saw 4

在这里插入图片描述

这个错误是由于pandas在读取数据时,遇到了格式不正确的数据行。具体来说,在第18行中,pandas期望只有两个字段,但实际上却看到了四个字段,所以抛出了解析错误。建议检查一下数据文件中的第18行,看看是否有额外的逗号其他分隔符导致了数据格式错误

二、解决思路

这个错误通常是由于读取数据时出现的格式问题导致的。具体来说,在第18行中,pandas希望看到2个字段(例如,如果您正在读取CSV文件,则这意味着2个逗号分隔的值),但实际上却看到了4个字段。

解决这个问题的方法通常是检查第18行的输入数据,并确保其格式与预期格式一致。您可以尝试使用文本编辑器打开源文件,并检查第18行的格式是否正确。一些常见的问题包括:

1. 字段之间使用了错误的分隔符(例如不是逗号)
2. 某些字段中包含了额外的分隔符(例如,如果某个字段中包含逗号)
3. 没有正确地引用包含分隔符的字段(例如将包含逗号的字段放在引号中)
4. 您可以尝试手动编辑源文件以修复格式问题,或者使用pandas的其他参数来指定文件格式或处理错误的行

三、解决方法

读取的是csv文件,分隔默认采用的是逗号
在这里插入图片描述
在这里插入图片描述
解决方法error_bad_lines=False

data= pd.read_csv(data_file, error_bad_lines=False)

如果出现:

在这里插入图片描述

解决方法warn_bad_lines=False

data= pd.read_csv(data_file, error_bad_lines=False,warn_bad_lines=False)