Python Pandas:MultiIndexのレベル名を指定してラベル値のベクトルを取得する方法
MultiIndexのレベル名を指定してラベル値を取得する
PandasのMultiIndex(マルチインデックス)で、レベル名を指定してラベル値のベクトルを返すには、MultiIndex.get_level_values()メソッドを使用します。このメソッドは、引数にレベル番号またはレベル名を渡すことで、該当レベルのラベル値をIndexオブジェクトとして取得できます。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
MultiIndexの作成
MultiIndexは、pandasオブジェクトに対する複数レベル(階層型)のインデックスオブジェクトです。ここでは、2つの配列からMultiIndexを作成し、各レベルに「One」「Two」という名前を設定しています。
multiIndex = pd.MultiIndex.from_arrays([list('pqrrss'), list('strvwx')], names=['One', 'Two'])
MultiIndexの表示
作成したMultiIndexを表示して内容を確認します。
print("The MultiIndex...\n", multiIndex)
レベル名「Two」でレベル値を取得
get_level_values()メソッドの引数にレベル名「Two」を指定して、レベル値を取得します。
print("\nLevel values using level name...\n", multiIndex.get_level_values("Two"))
サンプルコード全体
以下が、ここまでの手順をまとめた完全なコード例です。
import pandas as pd
# MultiIndexは、pandasオブジェクトのための複数レベル(階層型)インデックスオブジェクト
multiIndex = pd.MultiIndex.from_arrays([list('pqrrss'), list('strvwx')], names=['One', 'Two'])
# MultiIndexを表示
print("The MultiIndex...\n", multiIndex)
# MultiIndexのレベルを確認
print("\nThe levels in MultiIndex...\n", multiIndex.levels)
# レベル名「Two」を指定してレベル値を取得
print("\nLevel values using level name...\n", multiIndex.get_level_values("Two"))
実行結果
上記のコードを実行すると、以下のような出力が得られます。
The MultiIndex...
MultiIndex([('p', 's'),
('q', 't'),
('r', 'r'),
('r', 'v'),
('s', 'w'),
('s', 'x')],
names=['One', 'Two'])
The levels in MultiIndex...
[['p', 'q', 'r', 's'], ['r', 's', 't', 'v', 'w', 'x']]
Level values using level name...
Index(['s', 't', 'r', 'v', 'w', 'x'], dtype='object', name='Two')
ポイント解説
get_level_values("Two")のようにレベル名を渡すと、第2レベルのラベル値「s, t, r, v, w, x」を含むIndexオブジェクトが返されます。出力結果のname属性にも「Two」が設定されていることが確認できます。なお、レベル名の代わりに0や1などのレベル番号を指定することも可能です。これにより、階層化されたデータから特定のレベルの値だけを簡単に取り出すことができます。
-
Python – レベル名を指定して複数の階層を削除し、インデックスを返す方法
pandasのマルチインデックス(MultiIndex)から、レベル名を指定して複数の階層をまとめて削除したい場合は、multiIndex.droplevel() メソッドを使用します。引数には、削除したいレベルの名前をリスト形式で渡します。必要なライブラリのインポートまず、pandasをインポートします。import pandas as pdマルチインデックスの作成次に、マルチインデックスを作成します。names パラメータを指定すると、インデックスの各階層に名前を付けることができます。multiIndex = pd.MultiIndex.from_arrays([[5, 10], [15,
-
【Pandas】MultiIndexのレベル名を指定して階層を削除し、インデックスを返す方法
Pandasでマルチインデックス(MultiIndex)から特定の階層を削除し、その結果のインデックスを返すには、multiIndex.droplevel() メソッドを使用します。削除したい階層の名前を引数として指定するだけで、簡単に操作できます。この記事では、レベル名を使って階層を削除する具体的な手順を、サンプルコードとともにわかりやすく解説します。必要なライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pdマルチインデックスの作成次に、マルチインデックスを作成します。names パラメータを指定すると、インデックスの各階層に名前を付けること