2016-06-24 86 views
0

當我嘗試解析日期列並將該列設置爲索引時,使用大熊貓讀取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呼叫而不期望的結果感興趣第二次致電​​。

+0

'index_col = 0'的策略適用於我(Python 3.5.1,pandas 0.18.1)。在使用已在0.18.1中修復的'parse_dates'和'usecols'時出現了一個錯誤(https://github.com/pydata/pandas/commit/c6c201e27c7ed57a823ec7261340dfeec1e0226a)也許你正在運行一個較老的版本? –

+0

就是這樣。升級,它工作正常。格拉西亞斯如果你發佈了答案,我可以將其標記爲關閉 –

回答

1

0123'的策略適用於我(Python 3.5.1,pandas 0.18.1)。使用已在0.18.1(commit)中修復的parse_datesusecols時出現了一個錯誤。也許你正在運行一箇舊版本?