【Pandas】MultiIndexのレベル名を指定して階層を削除し、インデックスを返す方法
Pandasでマルチインデックス(MultiIndex)から特定の階層を削除し、その結果のインデックスを返すには、multiIndex.droplevel() メソッドを使用します。削除したい階層の名前を引数として指定するだけで、簡単に操作できます。
この記事では、レベル名を使って階層を削除する具体的な手順を、サンプルコードとともにわかりやすく解説します。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
マルチインデックスの作成
次に、マルチインデックスを作成します。names パラメータを指定すると、インデックスの各階層に名前を付けることができます。
multiIndex = pd.MultiIndex.from_arrays([[5, 10], [15, 20], [25, 30], [35, 40]], names=['a', 'b', 'c', 'd'])
マルチインデックスの表示
作成したマルチインデックスを表示してみましょう。
print("Multi-index...\n", multiIndex)レベル名を指定して階層を削除する
droplevel() メソッドに、削除したい階層の名前を引数として渡します。ここでは、階層 'b' を削除しています。
print("\nDropping a level...\n", multiIndex.droplevel('b'))完全なサンプルコード
以下が実行用のコード全体です。
import pandas as pd
# マルチインデックスを作成
# namesパラメータで各階層に名前を設定
multiIndex = pd.MultiIndex.from_arrays([[5, 10], [15, 20], [25, 30], [35, 40]],
names=['a', 'b', 'c', 'd'])
# マルチインデックスを表示
print("Multi-index...\n", multiIndex)
# レベル名を指定して階層を削除
# 削除したい階層の名前を引数として渡す
print("\nDropping a level...\n", multiIndex.droplevel('b'))実行結果
上記のコードを実行すると、次のような出力が得られます。
Multi-index... MultiIndex([( 5, 15, 25, 35),(10, 20, 30, 40)],names=['a', 'b', 'c', 'd']) Dropping a level... MultiIndex([( 5, 25, 35),(10, 30, 40)],names=['a', 'c', 'd'])
出力を見ると、階層 'b' の値(15と20)が取り除かれ、残りの階層 'a'、'c'、'd' だけで構成された新しいマルチインデックスが返されていることが確認できます。
補足:droplevel() メソッドのポイント
- 引数には階層の名前だけでなく、位置(整数)も指定できます。
- 複数の階層を同時に削除したい場合は、リスト形式で渡すことも可能です。
- 元のマルチインデックスは変更されず、新しいインデックスが返されます。
-
Python・PandasでIndexの最大値を取得する方法|index.max()の使い方
PandasのIndexオブジェクトから最大値を取得したい場合は、index.max() メソッドを使用します。このメソッドは、インデックスに含まれる要素の中から最も大きい値を1つ返してくれます。必要なライブラリのインポートまず、Pandasをインポートします。import pandas as pdPandasインデックスの作成次に、数値を含むPandasのインデックスを作成します。index = pd.Index([10, 20, 70, 40, 90, 50, 25, 30])作成したインデックスを表示してみましょう。print(Pandas Index...\n, index)そして、m
-
Python・Pandasでインデックスの最小値を取得する方法(index.min()の使い方)
Pandasのインデックス(Index)から最小値を返すには、index.min()メソッドを使用します。このメソッドを呼び出すだけで、インデックスに含まれる要素の中から最も小さい値を簡単に取得できます。まず、必要なライブラリをインポートしましょう。import pandas as pdPandasインデックスの作成次に、数値データを含むPandasインデックスを作成します。index = pd.Index([10.5, 20.4, 40.5, 25.6, 5.7, 6.8, 30.8, 50.2])作成したインデックスを表示して確認します。print(Pandas Index...\n, i