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

Python Pandas - MultiIndexでレベルの名前を取得する方法

MultiIndexの各レベルの名前を取得するには、PandasのMultiIndex.namesプロパティを使用します。まず、必要なライブラリをインポートしましょう。

import pandas as pd

MultiIndexとは、pandasオブジェクトで使用できる多階層(階層的)なインデックスオブジェクトのことです。まずは配列を作成します。

arrays = [[1, 2, 3, 4, 5], ['John', 'Tim', 'Jacob', 'Chris', 'Keiron']]

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

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

MultiIndexの各レベルの名前を取得するには、以下のように記述します。

print("\nMultiIndexのレベルの名前...\n", multiIndex.names)

サンプルコード

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

import pandas as pd

# MultiIndexは、pandasオブジェクト用の多階層(階層的)なインデックスオブジェクトです
# 配列を作成
arrays = [[1, 2, 3, 4, 5], ['John', 'Tim', 'Jacob', 'Chris', 'Keiron']]

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

# MultiIndexを表示
print("The Multi-index...\n", multiIndex)

# MultiIndexのレベルの名前を取得
print("\nMultiIndexのレベルの名前...\n", multiIndex.names)

# MultiIndexのレベルを取得
print("\nMultiIndexのレベル...\n", multiIndex.levels)

出力結果

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

The Multi-index...
MultiIndex([(1, 'John'),
   (2, 'Tim'),
   (3, 'Jacob'),
   (4, 'Chris'),
   (5, 'Keiron')],
   names=['ranks', 'student'])

MultiIndexのレベルの名前...
['ranks', 'student']

MultiIndexのレベル...
[[1, 2, 3, 4, 5], ['Chris', 'Jacob', 'John', 'Keiron', 'Tim']]

補足:namesプロパティとset_names()メソッド

multiIndex.namesは読み取りだけでなく、後から名前を変更することも可能です。既存のMultiIndexに対して名前を設定し直したい場合は、set_names()メソッドが便利です。

# レベルの名前を後から変更する例
new_multiIndex = multiIndex.set_names(['順位', '生徒名'])
print(new_multiIndex.names)  # FrozenList(['順位', '生徒名'])

このように、namesプロパティを使えばMultiIndexの構造を把握しやすくなり、データ分析時に特定のレベルへアクセスする際にも役立ちます。

  1. Python Pandas CategoricalIndex – カテゴリの取得方法をわかりやすく解説

    Pandas の CategoricalIndex に含まれるカテゴリを取得するには、categories プロパティを使用します。まずは、必要なライブラリをインポートしましょう。import pandas as pdCategoricalIndex は、限られた(通常は固定された)数の取り得る値、つまり「カテゴリ」のみを持つことができます。「categories」パラメータを使うことで、カテゴリカルデータに対してカテゴリを設定できます。また、「ordered」パラメータを指定すると、そのカテゴリカルデータを順序付きとして扱うことができます。catIndex = pd.CategoricalI

  2. Python Pandas - 期間(Period)の秒コンポーネントを取得する方法

    PandasのPeriodオブジェクトから「秒」のコンポーネントを取得するには、period.secondプロパティを使用します。この記事では、具体的なコード例とともに、その使い方をわかりやすく解説します。必要なライブラリのインポートまず、pandasをインポートします。import pandas as pdPeriodオブジェクトとはpandas.Periodは、特定の期間(時点)を表すオブジェクトです。日付や時刻の情報を保持し、頻度(freq)を指定することで、年・月・日・時・分・秒などの単位で期間を扱うことができます。ここでは、2つのPeriodオブジェクトを作成してみましょう。1つ目は