[pandasの使い方] 13. マルチインデクスをもつデータフレームの加工

Pandas
スポンサーリンク
スポンサーリンク

Series, DataFrameにおけるマルチインデクスの再設定方法などについて

マルチインデクスをもつDataFrameを加工するには?

pandasでは階層型構造をもつインデクス(=マルチインデクス)を用いることで、データの操作性や視認性が向上する。

自由自在に目的のデータにアクセスするためには、マルチインデクスの構造を把握することが重要である。

ここでは、マルチインデクスの再設定方法や、SeriesからDataFrameへの変換などについて解説する。

stack(), unstack()による変換

データの生成

データは、↓と同様に、チョコレートとビスケットの年間総生産量を用いている。

[pandasの使い方] 10. 階層型インデクス
Series, DataFrameにおける階層型インデクスの使い方

unstack()によるDataFrame化

unstack()することでSeriesをDataFrameに変換できる。その際、levelの指定により、どのインデクスを列にするかを選ぶことができる。

stack()による再Series化

unstack()した配列を再びstack()することで、Seriesに戻すことができる。
マルチインデクスの順序はlevelに応じて変わり、列のインデクスにしたlevelがデータに近い側に配置される。

カラム名の設定によるDataFrame化

.reset_index(name=’*’)によってカラム名を設定することでデータフレームにすることができる。

カラム名でスライスすることでマルチインデクスのないSeriesが得られる。

.set_indexによるインデクスの設定

.set_index([‘product’, ‘year’])により、prodoctとyearをインデクスとした2次元のデータフレームを作成できる。

.ilocによるスライス

2次元のDataFrameであるため、np.arrayのようにスライスが可能。

Seriesは1次元の配列であるため、2次元配列のようにスライスすると、#IndexingError: Too many indexersとエラーが出る。

スポンサーリンク

参考

Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

スポンサーリンク
Pandaspython
スポンサーリンク
この記事をシェアする
sabopy.comをフォローする
スポンサーリンク
サボテンパイソン

コメント