【发布时间】:2013-08-05 00:46:39
【问题描述】:
我正在尝试使用 pandas 来操作 .csv 文件,但出现此错误:
pandas.parser.CParserError:错误标记数据。 C 错误:预计第 3 行中有 2 个字段,看到 12
我尝试阅读 pandas 文档,但一无所获。
我的代码很简单:
path = 'GOOG Key Ratios.csv'
#print(open(path).read())
data = pd.read_csv(path)
我该如何解决这个问题?我应该使用csv 模块还是其他语言?
文件来自Morningstar
【问题讨论】:
-
如果读取
pandas.to_csv()写入的文件时出现此错误,可能是因为列名中有'\r',这种情况下to_csv()实际上会写入后续列名称进入数据框的第一列,导致前 X 行中的列数不同。这种差异是导致 C 错误的原因之一。 -
有时只是明确地给出“sep”参数会有所帮助。似乎是解析器问题。
-
当您使用逗号作为分隔符并且您的逗号比预期的多(错误行中的更多字段然后在标题中定义)时,也可能会出现此错误。因此,您需要删除附加字段或删除多余的逗号(如果错误存在)。您可以手动修复此问题,然后无需跳过错误行。
-
gilgamash 的评论帮助了我。在文本编辑器(如 Windows 编辑器或记事本++)中打开 csv 文件,查看用于分隔的字符。如果是分号,例如试试
pd.read_csv("<path>", sep=";")。不要使用 Excel 进行检查,因为它有时会默认将数据放入列中,因此会删除分隔符。 -
有类似的问题。意识到这是由于我的 csv 文件中有一个带有逗号的值。必须用 " " 封装它