2016-11-05 116 views
0

我想读熊猫使用seeds dataset。当加载使用文件:令人困惑的熊猫read_table错误

df = pd.read_table("seeds_dataset.txt", header=None) 

我得到:

CParserError: Error tokenizing data. C error: Expected 8 fields in line 8, saw 10 

现在,加载与Excel文件,我需要指定标签和空间,在同一时间分隔符,以正确读取文件在第8行,这是熊猫无法完成的事情(据我所知)。 Sublime Text直接精确读取文件。

我不想跳过error_bad_lines的坏行,因为它们没有任何问题。我也用lineterminator没有成功。

回答

0

尝试选项“delim_whitespace”。

df = pd.read_table("seeds_dataset.txt", header=None, delim_whitespace = True) 

编辑:更详细的解释:

方法签名read_tablehere。它有各种选项,其中之一是sep。这定义了字段之间的分隔符,其默认值是'\ t'(制表符)。一种解决方法是更改​​sep参数。 pandas解析器的python实现允许您使用正则表达式分隔符,因此sep = "\\s+"将分隔任意数量的空白。然而,C语法分析器(它看起来像你从错误信息中使用的)不允许你使用正则表达式。它确实有delim_whitespace选项,但是,它完全符合您的需求!

+0

感谢您的回答,您能解释一下为什么使用'delim_whitespace'工作吗?我对知道问题的起源更感兴趣 – Valilutzik