Python Pandas:MultiIndexで指定したレベルのラベル値を取得する方法(get_level_values)
MultiIndex(マルチインデックス)において、指定したレベルのラベル値をベクトルとして取得するには、multiIndex.get_level_values() メソッドを使用します。引数には、レベル番号(整数)またはレベル名(文字列)を指定できます。
get_level_values()メソッドの概要
MultiIndexは、pandasオブジェクトに対して使用できるマルチレベル(階層型)のインデックスです。get_level_values()メソッドを呼び出すと、該当するレベルのラベル値がIndexオブジェクトとして返されます。これにより、特定のレベルだけを抽出して、データの集計やフィルタリングなどに活用できます。
ライブラリのインポート
まず、必要なライブラリであるpandasをインポートします。
import pandas as pd
MultiIndexの作成
MultiIndexは、pandasオブジェクトのためのマルチレベル(階層的)なインデックスオブジェクトです。ここでは from_arrays() を使って配列からMultiIndexを作成し、各レベルに「One」「Two」という名前を付けています。
multiIndex = pd.MultiIndex.from_arrays([list('pqrrss'), list('strvwx')], names=['One', 'Two'])MultiIndexの表示
作成したMultiIndexを表示して内容を確認します。
print("The MultiIndex...\n", multiIndex)MultiIndexのレベル一覧を取得
MultiIndexに含まれるレベルの一覧を取得します。
print("\nThe levels in MultiIndex...\n", multiIndex.levels)レベル0のラベル値を取得
get_level_values() にレベル番号「0」を渡して、レベル0のラベル値を取得します。
print("\nLevel values...\n", multiIndex.get_level_values(0))サンプルコード(完全版)
以下に、ここまでの手順をまとめたコード全体を示します。最後に、レベル名「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)
# レベル0のラベル値を取得
print("\nLevel values...\n", multiIndex.get_level_values(0))
# レベル名「Two」を指定してラベル値を取得
print("\nLevel values...\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...
Index(['p', 'q', 'r', 'r', 's', 's'], dtype='object', name='One')
Level values...
Index(['s', 't', 'r', 'v', 'w', 'x'], dtype='object', name='Two')まとめ
get_level_values()メソッドを使えば、MultiIndexから任意のレベルのラベル値を簡単に抽出できます。引数にはレベル番号(0始まりの整数)とレベル名(文字列)のどちらでも指定できるため、コードの可読性を高めたい場合はレベル名での指定がおすすめです。
-
Python Pandas入門 – インデックスから一意の値を取得する方法(index.unique)
Pandasでインデックス(Index)に含まれる一意の値(重複を除いた値)を取得するには、index.unique()メソッドを使用します。このメソッドは、値を出現順にそのまま返すのが特徴で、自動的に並べ替え(ソート)は行われません。 まず、必要なライブラリをインポートしましょう。 import pandas as pd Pandasインデックスの作成 サンプルとして、重複した値を含む整数のインデックスを作成します。 index = pd.Index([10, 50, 70, 10, 90, 50, 10, 30]) インデックスの内容を確認する print()関数を使って、作成したイン
-
Python・PandasでDataFrameの無限大の値に対してTrueを表示する方法
Pandasのisin()メソッドを使用すると、DataFrame内の無限大(inf)の値に該当するセルに対してTrueを表示できます。この記事では、NumPyのnp.infを使って無限大の値を含むDataFrameを作成し、それらを検出してTrueとして表示する手順を解説します。必要なライブラリのインポートまず、PandasとNumPyをそれぞれ別名(エイリアス)を付けてインポートします。import pandas as pd import numpy as np無限大の値を含むデータの準備次に、リストを値にもつ辞書を作成します。ここではNumPyのnp.infを使って、無限大の値を意図的に