[pandas] 13. マルチインデックスを利用してDataFrameで集約関数計算

Pandas

はじめに

pandas というPythonライブラリは、データ解析において非常に便利なツールです。その機能の中でも特に重要なものの一つが「マルチインデックス」です。マルチインデックスを使うと、複数の階層を持つデータを効率的に扱うことができ、より複雑な集計や分析が可能になります。

解説

DataFrameはNumPy同様に、mean、sumなどの集約関数を利用できます。pandasにはインデックスが実装されているため、np.arrayと比較してデータ選択の柔軟性が高いという特徴があります。この記事では、マルチインデックスを活用したデータ計算の方法について説明します。

モジュールのインポート

マルチインデックスをもつDataFrameの作成

pd.MultiIndex.from_product は、リストの要素すべての組み合わせからインデックスを作成します。例えば [[‘a’, ‘b’, ‘c’], [1, 2]] の場合、3×2 で 6 個の要素を持つインデックスが生成されます。

levelを指定した計算

列方向の計算

levelの指定により、計算する範囲を変更できます。level=’A’を指定した場合、Aのインデックスに該当する部分で計算が行われます。level=’B’を指定した場合は、Bのインデックスに該当する部分で計算が実行されます。

行方向の計算

axis=1とすることで行方向のレベルで計算ができます。

その他の集約関数

他のものは代表的な集約関数は以下の通りとなっています。

集約関数計算
.sum()合計
.max()最大
.min()最小
.mean()平均
.median()中央値
.std()標準偏差
.mode()最頻値

まとめ

本記事では、pandasのマルチインデックスを利用して、DataFrameでの集約関数計算について解説しました。マルチインデックスを活用することで、複数の階層でデータをグループ化し、より詳細な分析が可能になります。

参考

pandas.MultiIndex.from_product — pandas 2.3.2 documentation

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

コメント