【问题标题】:CParserError: Error tokenizing data. when reading book-crossing datasetCParserError:标记数据时出错。阅读翻书数据集时
【发布时间】:2017-10-25 14:49:38
【问题描述】:

我想阅读book-crossing dataset 表:BX-Books。使用熊猫。 当我写:

  #load book informations dataset
books = pd.read_csv("BX-CSV-Dump/BX-Books.csv",sep=';')

我收到一个错误:

CParserError:标记数据时出错。 C 错误:预计第 6452 行中有 8 个字段,看到 9

如何纠正这个问题?我尝试使用 '\t' 作为分隔符,但它也不起作用,在这种情况下,我将一列中的所有列都用“;”分隔。

【问题讨论】:

  • 您是否转到第 6452 行并查看您的数据是什么样的以及为什么会引发该错误?

标签: python pandas csv


【解决方案1】:

问题是由以下字符串引起的:

"Peterman Rides Again: Adventures Continue with the Real \"J. Peterman\" Through Life & the Catalog Business"

注意:注意&,包含;\"J. Peterman\",包含引号字符

所以试试这个:

In [34]: df = pd.read_csv(fn, sep=';', escapechar='\\', encoding='CP1252', 
                          low_memory=False)

In [35]: df.shape
Out[35]: (271379, 8)

【讨论】:

  • 我跳过了很多行。什么原因?我的意思是,我想了解使用 ';' 的原因作为分隔符不成功?谢谢。
  • 不知何故,是的..但是虽然所有行的列数相同.. 好的,如果我不想跳过行,我应该使用另一个库来阅读文件?这是什么?
  • @SarahM,我刚刚找到了“正确的方法”;-)
猜你喜欢
  • 2016-09-27
  • 2016-08-23
  • 1970-01-01
  • 2016-03-04
  • 2020-02-03
  • 2018-06-01
  • 2020-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多