はじめに
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
コメント