2016-06-24 4 views
0

日付列を解析してその列をインデックスとして設定しようとすると、奇妙な動作が起こります。パンダの日付を解析して奇妙な振る舞いを設定する

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を読み、次のスニペット

完全に望ましい結果

   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 
を出力
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 

とその後のインデックスを設定します

しかし、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コールで所望の結果を達成することができる方法の両方興味2番目の呼び出しは​​です。

+0

'index_col = 0'の戦略は私にとっては役に立ちます(Python 3.5.1、pandas 0.18.1)。 0.18.1で修正された 'parse_dates'と' usecols'の両方を使ったときに出現したバグがありました(https://github.com/pydata/pandas/commit/c6c201e27c7ed57a823ec726740dfeec1e0226a)古いバージョンを実行している可能性があります? –

+0

それです。アップグレードされ、正常に動作します。 Gracias。あなたが答えを投稿したら私はそれを閉鎖してマークすることができます –

答えて

1

index_col=0の戦略は私にとっては役に立ちます(Python 3.5.1、pandas 0.18.1)。 parse_datesusecolsの両方を0.18.1(commit)に固定して使用したときに表示されるバグがありました。古いバージョンを実行している可能性がありますか?