Python Pandas – マルチインデックスの特定のレベルから値を取得する方法
はじめに
Pandasでマルチインデックス(MultiIndex)の特定のレベルから値を取得したい場合は、multiIndex.get_level_values() メソッドを使用します。このメソッドは、指定したレベルの値をIndexオブジェクトとして返します。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
マルチインデックスの作成
次に、マルチインデックスを作成します。names パラメータを使用すると、インデックスの各レベルに名前を設定できます。
multiIndex = pd.MultiIndex.from_arrays([[5, 10], [15, 20], [25, 30], [35, 40]], names=['a', 'b', 'c', 'd'])
特定のレベルから値を取得する
get_level_values() メソッドにレベル番号を渡すことで、そのレベルの値を取得できます。
0番目(第0レベル)の値を取得する例:
print("\n第0レベルの値:\n", multiIndex.get_level_values(0))
1番目(第1レベル)の値を取得する例:
print("\n第1レベルの値:\n", multiIndex.get_level_values(1))
ポイント: レベル番号だけでなく、names パラメータで設定したレベル名(例:'a' や '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("マルチインデックス:\n", multiIndex)
# 第0レベルの値を取得
print("\n第0レベルの値:\n", multiIndex.get_level_values(0))
# 第1レベルの値を取得
print("\n第1レベルの値:\n", multiIndex.get_level_values(1))
# マルチインデックスからレベルを削除
print("\nレベルの削除:\n", multiIndex.droplevel())
実行結果
上記のコードを実行すると、次のような出力が得られます。
マルチインデックス:
MultiIndex([( 5, 15, 25, 35),
(10, 20, 30, 40)],
names=['a', 'b', 'c', 'd'])
第0レベルの値:
Int64Index([5, 10], dtype='int64', name='a')
第1レベルの値:
Int64Index([15, 20], dtype='int64', name='b')
レベルの削除:
MultiIndex([(15, 25, 35),
(20, 30, 40)],
names=['b', 'c', 'd'])
まとめ
Pandasの get_level_values() メソッドを使えば、マルチインデックスから任意のレベルの値を簡単に抽出できます。レベル番号またはレベル名のどちらでも指定できるため、階層的なデータを扱う際に非常に便利です。また、droplevel() メソッドと組み合わせれば、不要なレベルを削除しながら柔軟にインデックスを操作できます。
-
Python Pandas入門:DataFrameの列から一意の値を取得・カウントする方法
PandasのDataFrameから特定の列の一意(ユニーク)な値を取得したい場合はunique()メソッドを使用します。また、一意な値の個数を数えたい場合はnunique()メソッドを使用します。この記事では、サンプルデータを使いながら、両メソッドの基本的な使い方を解説します。1. ライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pd2. サンプルDataFrameの作成次に、「Car」「Place」「Units」の3つの列を持つDataFrameを作成します。このデータには重複した値が含まれている点に注目してください。dataFrame =
-
【Python】Pandas DataFrameから重複行を削除する方法|drop_duplicates()の使い方
Pandas DataFrameから重複行を削除する基本 PandasのDataFrameから重複する値(重複行)を削除するには、drop_duplicates()メソッドを使用します。このメソッドは、すべての列の値が完全に一致する行を検出し、最初に出現した行だけを残して、それ以降の重複行を取り除きます。 まず、3つのカラム(Car、Place、UnitsSold)を持つDataFrameを作成しましょう。 import pandas as pd dataFrame = pd.DataFrame({ Car: [BMW, Mercedes, Lamborghini, BMW, Mer