令人困惑的pandas中的read_table错误

时间:2016-11-05 18:59:33

标签: python pandas tab-delimited

我正在尝试使用pandas阅读seeds dataset。使用以下命令加载文件时

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但没有成功。

1 个答案:

答案 0 :(得分:0)

尝试选项" delim_whitespace"。

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

编辑:更详细的解释:

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