[pandas] 9. 階層構造をもつインデックスについて

Pandas

はじめに

pandasでは、インデックスに階層構造を持たせることができます。これをMultiIndexやHierarchical Indexと呼びます。階層構造を持つインデックスを使うことで、複数の項目でデータをグループ化したり、多次元データを効率的に扱うことができます。本記事では、MultiIndexの基本的な操作方法から応用的な活用法まで解説します。

解説

モジュールのインポート

タプル型のインデックスでSeriesの作成

タプル型のインデックスを使用している場合、インデックス値が2のデータのみを抽出しようとしても、単純な方法では取得できません。

MultiIndexによるインデックス

マルチインデックスを作成するには、pd.MultiIndex.from_tuples(index)を使用して、タプルを階層構造をもつインデックスとして扱います。

reindexによるインデックスの振り直し

先ほど作成したSeriesに対して、インデクスを振り直す.reindex(index)を使用してデータを更新すると、多層構造のインデクスをもつSeriesが生成されます。

マルチインデックスのスライス

Cactusのデータだけをスライスするには、Seri[‘Cactus’]と記述します。また、インデックスの値が2のデータをスライスしたい場合は、Seri[:,2]とすれば取得できます。

マルチインデックスSeriesのDataFrameへの変換

階層構造のインデックスを持つSeriesは簡単にDataFrameに変換できます。unstack()メソッドを使用すると、2つ目のインデックスがカラム名に変換されたDataFrameが生成されます。

もとに戻す場合は、stack()をすれば良いです。

まとめ

本記事では、pandasの階層的インデックス(MultiIndex)について解説しました。MultiIndexを使用することで、複数次元のデータを効率的に扱うことができ、様々な角度からデータを分析することが可能になります。作成方法、レベル操作、スライス、ピボットテーブルなど基本的な操作を理解することで、データ分析の幅が広がるでしょう。

参考

pandas.MultiIndex.from_tuples — pandas 2.3.2 documentation
pandas.DataFrame.reindex — pandas 2.3.2 documentation

コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)

コメント

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