当我尝试同时解析日期列并将该列设置为索引时,我正在遇到一些奇怪的行为,同时从带有pandas的CSV中读取。
csv文件有一个丢弃标题和一个扔掉的索引列,如下所示(通过扔掉我的意思是我不想使用它们)
"","X.m..d..y","fizzBuzz"
"1","2/2/1984",0.02523659
"2","2/3/1984",-0.03692308
"3","2/6/1984",-0.01597444
"4","2/7/1984",-0.006493506
"5","2/8/1984",-0.0130719
现在,我可以轻松阅读df,然后使用以下代码段
设置索引import pandas as pd
df = pd.read_csv('stackOverflow.csv',header=0,
names=['_throAwayindex','date','value'], usecols=['date','value'],
parse_dates=['date'] )
df = df.set_index('date')
df
完美输出所需的结果
value
date
1984-02-02 0.025237
1984-02-03 -0.036923
1984-02-06 -0.015974
1984-02-07 -0.006494
1984-02-08 -0.013072
但是当我尝试在read_csv
调用中设置索引时,我得到一个奇怪的结果。这会错误地命名索引列
df = pd.read_csv('stackOverflow.csv',header=0,
names=['_throAwayindex','date','value'], usecols=['date','value'],
parse_dates=['date'], index_col=0 )
df
value
_throAwayindex
2/2/1984 0.025237
2/3/1984 -0.036923
2/6/1984 -0.015974
2/7/1984 -0.006494
2/8/1984 -0.013072
这样做的一切都错了:
df = pd.read_csv('stackOverflow.csv',header=0,
names=['_throAwayindex','date','value'], usecols=['date','value'],
parse_dates=['date'], index_col=1 )
df
date
date
0.025237 2/2/1984
-0.036923 2/3/1984
-0.015974 2/6/1984
-0.006494 2/7/1984
-0.013072 2/8/1984
我对正在发生的事情以及如何在read_csv
电话中实现预期结果感兴趣,而无需第二次拨打set_index
。
答案 0 :(得分:1)
index_col=0
的策略适用于我(Python 3.5.1,pandas 0.18.1)。在使用已在0.18.1(commit)中修复的parse_dates
和usecols
时,出现了一个错误。也许你正在运行旧版本?