Pandas 解析日期并设置索引 - 奇怪的行为

Pandas parse date and set index- weird behavior

我在使用 pandas.

读取 CSV 文件时尝试解析日期列并将该列设置为索引时遇到了一些奇怪的行为

csv 文件有一个 throw-away header 和一个 throw-away 索引列,如下所示(throw-away 我的意思是我不想使用它们)

"","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('Whosebug.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 调用中设置索引时,我得到了一个奇怪的结果。这个mis-names索引列

df = pd.read_csv('Whosebug.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('Whosebug.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

我对正在发生的事情以及如何在不第二次调用 set_index.

的情况下只调用 read_csv 来达到预期的结果都很感兴趣

index_col=0 的策略对我有效(Python 3.5.1,pandas 0.18.1)。同时使用 parse_datesusecols 时会出现一个错误,该错误已在 0.18.1 (commit) 中修复。也许您 运行 是旧版本?