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

Python Pandas入門:droplevel()で指定レベルを削除したMultiIndexを取得する方法

Pandasで、指定したレベルを削除したMultiIndexを取得するには、MultiIndex.droplevel()メソッドを使用します。引数に削除したいレベルを指定します。

まず、必要なライブラリをインポートしましょう。

import pandas as pd

MultiIndexとは

MultiIndex(マルチインデックス)は、Pandasオブジェクトにおける複数階層の(階層的な)インデックスオブジェクトです。単一のインデックスでは表現できない多次元データを、柔軟に扱うことができます。

まず、MultiIndexを作成するための配列を用意します。

arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob']]

namesパラメータを使うと、各インデックスレベルに名前を付けることができます。そしてfrom_arrays()メソッドを使用して、MultiIndexを作成します。

multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))

次に、特定のレベルを削除します。ここではレベル「1」を指定しているため、第1レベル(student)が削除されます。

print("\nレベル削除後のマルチインデックス...\n", multiIndex.droplevel(1))

サンプルコード

以下が完全なコード例です。

import pandas as pd

# MultiIndexは、Pandasオブジェクトのための複数階層の(階層的な)インデックスオブジェクト
# 配列を作成
arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob']]

# "names"パラメータで各インデックスレベルに名前を設定
# from_arrays()を使用してMultiIndexを作成
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))

# MultiIndexを表示
print("マルチインデックス...\n", multiIndex)

# MultiIndexのレベルを取得
print("\nマルチインデックスのレベル...\n", multiIndex.levels)

# 特定のレベルを削除
# レベル1を指定しているため、第1レベルが削除される
print("\nレベル削除後のマルチインデックス...\n", multiIndex.droplevel(1))

実行結果

上記のコードを実行すると、以下のような出力が得られます。

マルチインデックス...
MultiIndex([(2, 'Peter'),
            (4, 'Chris'),
            (3, 'Andy'),
            (1, 'Jacob')],
           names=['ranks', 'student'])

マルチインデックスのレベル...
   [[1, 2, 3, 4], ['Andy', 'Chris', 'Jacob', 'Peter']]

レベル削除後のマルチインデックス...
   Int64Index([2, 4, 3, 1], dtype='int64', name='ranks')

このように、droplevel()メソッドを使うことで、不要な階層を簡単に取り除き、フラットなインデックスへと変換できます。データ分析において、階層構造を持つインデックスを整理したい場合に非常に便利な機能です。

  1. 【Python・Pandas】MultiIndexから特定のレベルを削除したインデックスを返す方法

    Pandasの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])レベルを削除するには、droplevel

  2. 【Python・Pandas】MultiIndex.droplevel()でレベルを削除したインデックスを返す方法

    PandasのMultiIndex.droplevel()メソッドを使用すると、指定したレベルを削除した新しいインデックスを取得できます。マルチインデックスから不要な階層を取り除きたい場合に非常に便利なメソッドです。 まず、必要なライブラリをインポートしましょう。 import pandas as pd マルチインデックスの作成 次に、マルチインデックスを作成します。namesパラメータを指定すると、インデックスの各レベルに名前を設定することができます。 multiIndex = pd.MultiIndex.from_arrays([[5, 10], [15, 20], [25, 30], [