Python
 Computer >> コンピューター >  >> プログラミング >> Python

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() メソッドと組み合わせれば、不要なレベルを削除しながら柔軟にインデックスを操作できます。

  1. Python Pandas入門:DataFrameの列から一意の値を取得・カウントする方法

    PandasのDataFrameから特定の列の一意(ユニーク)な値を取得したい場合はunique()メソッドを使用します。また、一意な値の個数を数えたい場合はnunique()メソッドを使用します。この記事では、サンプルデータを使いながら、両メソッドの基本的な使い方を解説します。1. ライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pd2. サンプルDataFrameの作成次に、「Car」「Place」「Units」の3つの列を持つDataFrameを作成します。このデータには重複した値が含まれている点に注目してください。dataFrame =

  2. 【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