2013-04-01 19 views
15

私は、CSVファイルからDataFrameにインポートされたデータのテーブルを持っています。Python Pandas - 日付列から列へのインデックス

データには約10個のカテゴリフィールド、1ヶ月の列(日付時間形式)が含まれ、残りはデータ系列です。

日付軸を列軸のインデックスに変換するにはどうすればよいですか?

+1

あなたが持つ関数を呼び出す場合は、[read_csv](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html)自身でこれを行います'index_col'と' parse_dates = True' –

答えて

22

あなたはset_indexを使用することができます。たとえば

df.set_index('month') 

In [1]: df = pd.DataFrame([[1, datetime(2011,1,1)], [2, datetime(2011,1,2)]], columns=['a', 'b']) 

In [2]: df 
Out[2]: 
    a     b 
0 1 2011-01-01 00:00:00 
1 2 2011-01-02 00:00:00 

In [3]: df.set_index('b') 
Out[3]: 
      a 
b    
2011-01-01 1 
2011-01-02 2 
+0

ありがとうAndy 日付が他の軸に沿っているようにインデックスを設定できますか?このグループは価値がありますか? – MrHopko

+1

あなたが持っている、あなたが望むサンプルのDataFrameを与えることができますか?日付列を列インデックスにするのはどういう意味かわかりません。値をグループ化しないので、1つの列がインデックスになります。 :) –

+0

私は各列が1ヶ月を表すようにデータを並べ替えたい。表の各行は異なる時系列を表します。それは理にかなっていますか?私はテーブルを使ってデモンストレーションしますが、このウェブサイトにテーブルを挿入する方法はわかりません。 – MrHopko

4

私はちょうどreset_indexによって解決しました同様の問題がありました。

ind_df=df.set_index(['A', 'B'])

df.reset_index(level=0, inplace=True) 
3

はあなたが先に時間の日付の列の名前を知っているし、時系列の列に基づいて自動的にインデックスを設定する必要がない場合:しかし、あなたはset_indexやreset_indexのいずれかを使用することができますデータ

df.set_index((df.select_dtypes(include=[np.datetime64]).columns).tolist()) 
関連する問題