python pandas - 尾随分隔符混淆read_csv

edw*_*rdw 11 python numpy

我正在关注Python for Data Analysis一书中的示例.具体来说,2012年选举数据库来自第9章.数据位于一个大的csv文件中,以逗号分隔.但是文件的每一行都有一个额外的尾随分隔符,这似乎很混乱pandas.read_csv.

它将额外的分隔符视为有一个额外的列.因此,除了标题所需的列之外,还有一列.然后pandas.read_csv将第一列作为行标签.总体效果是列和标题不再对齐 - 第一列成为行标签,第二列由第一个标题命名,等等.

这很烦人.知道如何告诉pandas.read_csv做正确的事吗?我找不到一个.

好书,顺便说一句.

k-n*_*nut 11

对于仍然发现这一点的每个人.韦斯写了一篇关于此的博文.问题是如果行中有一个值太多,则将其视为行名称.

可以通过将index_col=False选项设置为更改此行为read_csv.


Wes*_*ney 6

我创建了一个GitHub问题,以便自动处理此问题:

https://github.com/pydata/pandas/issues/2442

我认为FEC文件格式略有改变导致这个恼人的问题 - 如果你使用这里发布的那个http://github.com/pydata/pydata-book你希望不会有这个问题.


edw*_*rdw 5

嗯,有一个非常简单的解决方法。读取 csv 文件时在标题中添加一个虚拟列:

cols = ...
cols.append('')
records = pandas.read_csv('filename.txt', skiprows=1, names=cols)
Run Code Online (Sandbox Code Playgroud)

然后列和标题再次对齐。