一个csv(逗号分隔)文件,其中的行有一个额外的尾随字符串,似乎混淆了pandas.read_csv。(数据文件是[1])pandas.read_csv将第一列作为行标签。总体效果是列和标题不再对齐-第一列成为行标签,第二列由第一个标题命名,等等。这是相当恼人的。任何想法如何告诉pandas.read_csv做正确的事情?我找不到一个。很棒的书,顺便说一句。[1]:2012年FEC选举数据库,摘自本书第9章 Python for Data Analysis
pandas.read_csv
oxf4rvwz1#
Wes写了一个blogpost关于这个问题。如果行中有一个值太多,它会被视为行名称。可以通过将index_col=False设置为read_csv的选项来更改此行为。
index_col=False
read_csv
wooyq4lh2#
我创建了一个GitHub问题来看看如何自动处理这个问题:https://github.com/pydata/pandas/issues/2442我认为FEC文件格式略有改变,导致这个恼人的问题-如果你使用这里张贴的http://github.com/pydata/pydata-book,你希望不会有这个问题。
ymzxtsji3#
有一个非常简单的解决方法。当阅读csv文件时,在头中添加一个虚拟列:
cols = ... cols.append('') records = pandas.read_csv('filename.txt', skiprows=1, names=cols)
字符串然后列和标题再次对齐。
3条答案
按热度按时间oxf4rvwz1#
Wes写了一个blogpost关于这个问题。如果行中有一个值太多,它会被视为行名称。
可以通过将
index_col=False
设置为read_csv
的选项来更改此行为。wooyq4lh2#
我创建了一个GitHub问题来看看如何自动处理这个问题:
https://github.com/pydata/pandas/issues/2442
我认为FEC文件格式略有改变,导致这个恼人的问题-如果你使用这里张贴的http://github.com/pydata/pydata-book,你希望不会有这个问题。
ymzxtsji3#
有一个非常简单的解决方法。当阅读csv文件时,在头中添加一个虚拟列:
字符串
然后列和标题再次对齐。