我正在阅读“Python for Data Analysis”一书,在“示例:2012联邦选举委员会数据库”一节中将数据读取到数据帧时遇到了问题。问题是数据的其中一列总是被设置为索引列,即使index_col参数被设置为None
以下是数据的链接:http://www.fec.gov/disclosurep/PDownload.do
以下是加载代码(为了节省检查时间,我将nrows设置为10):
import pandas as pd
fec = pd.read_csv('P00000001-ALL.csv',nrows=10,index_col=None)
简而言之,我排除了数据列输出,但这是我的输出(请不要使用索引值):
In [20]: fec
Out[20]:
<class 'pandas.core.frame.DataFrame'>
Index: 10 entries, C00410118 to C00410118
Data columns:
...
dtypes: float64(4), int64(3), object(11)
这是这本书的输出(同样排除了数据列):
In [13]: fec = read_csv('P00000001-ALL.csv')
In [14]: fec
Out[14]:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1001731 entries, 0 to 1001730
...
dtypes: float64(1), int64(1), object(14)
我的输出中的索引值实际上是文件中的第一列数据,然后将所有剩余数据向左移动一。有人知道如何防止这列数据被列为索引吗?我希望索引只增加+1个整数
我对Python和熊猫还比较陌生,所以我为给您带来的不便表示歉意。谢谢
Re:craigts的回答是,对于那些在索引col中使用False或None参数时遇到问题的人,例如在试图删除范围索引的情况下,可以使用整数来指定要用作索引的列。例如:
上面将第一列设置为索引(在我的“常见情况”中不添加范围索引)
更新
鉴于这个答案很受欢迎,我想我应该添加一些上下文/演示:
无索引或无/假读取都将导致范围索引:
但是,如果我们指定“A”(第0列)实际上是索引,我们可以避免使用范围索引:
快速回答
如果每行末尾都有分隔符,请使用index_col=False而不是index_col=None关闭索引列推断并放弃最后一列
更多细节
查看数据后,每行末尾都有一个逗号。以及这段引文(自本帖创建之日起,文档已被编辑):
fromthe documentation显示您有n个头和n+1个数据列,并将第一列作为索引
编辑2014年10月20日-更多信息
我发现another valuable entry特别是关于尾部限制器以及如何简单地忽略它们:
如果pandas将第一行视为标题,则可以使用header=none:
这样熊猫会像对待任何一排一样对待你的第一排
相关问题 更多 >
编程相关推荐