<Python, pandas> カラムをインデックスに引き当てる
データフレームDataFrame
のカラムColumn
をインデックスindex
に引き当てる。
set_index()
を使うらしい。
In [37]: df = pd.DataFrame({ ...: 'a':[1,2,3,4,5], ...: 'b':[0,0,1,1,1], ...: 'c':['a','b','c','c','d'], ...: 'd':['e','f','g','h','i'] ...: }) In [38]: df Out[38]: a b c d 0 1 0 a e 1 2 0 b f 2 3 1 c g 3 4 1 c h 4 5 1 d i In [39]: df.set_index('a') Out[39]: b c d a 1 0 a e 2 0 b f 3 1 c g 4 1 c h 5 1 d i In [40]: df Out[40]: a b c d 0 1 0 a e 1 2 0 b f 2 3 1 c g 3 4 1 c h 4 5 1 d i In [41]: df1 = df.set_index(['b','c']) In [42]: df1 Out[42]: a d b c 0 a 1 e b 2 f 1 c 3 g c 4 h d 5 i In [43]: df1.ix[(1,'c')] Out[43]: a d b c 1 c 3 g c 4 h In [44]: df1.ix[(0,'a')] Out[44]: a d b c 0 a 1 e In [45]: df1.ix[(1,'c'),'a'] Out[45]: b c 1 c 3 c 4 Name: a, dtype: int64
- リスト
list
で複数カラムを渡せばマルチインデックスmulti index
となる。 set_index()
は新たにデータフレームを返す。対象のデータフレームを変更しない。.ix
で参照できる。 各インデックスは階層ごとに()
内に並べて渡す。
マニュアル。
pandas.DataFrame.set_index — pandas 0.17.1 documentation
MultiIndex / Advanced Indexing — pandas 0.17.1 documentation