Python Pandas – MultiIndexでレベルを取得する方法
MultiIndex(マルチインデックス)のレベルを取得するには、PandasのMultiIndex.levelsプロパティを使用します。まずは必要なライブラリをインポートしましょう。
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("\nThe levels in Multi-index...\n", multiIndex.levels)サンプルコード
以下が完全なコード例です。
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("\nThe levels in Multi-index...\n", multiIndex.levels)実行結果
上記のコードを実行すると、次のような出力が得られます。
The Multi-index...
MultiIndex([(1, 'John'),
(2, 'Tim'),
(3, 'Jacob'),
(4, 'Chris'),
(5, 'Keiron')],
names=['ranks', 'student'])
The levels in Multi-index...
[[1, 2, 3, 4, 5], ['Chris', 'Jacob', 'John', 'Keiron', 'Tim']]ポイント解説
MultiIndex.levelsプロパティは、各レベルに含まれるユニークな値をソート済みのリストとして返します。そのため、元の配列では「John」「Tim」「Jacob」の順で定義されていた学生名が、出力ではアルファベット順の「Chris」「Jacob」「John」「Keiron」「Tim」として表示されている点に注意してください。このようにlevelsプロパティを活用することで、階層的なインデックスの構成要素を簡単に確認できます。
-
Python Pandas – Period(期間)オブジェクトから月コンポーネントを取得する方法
Pandas の Period オブジェクトから「月」のコンポーネントを取得するには、period.month プロパティを使用します。このプロパティは、対象となる期間が属する月(1〜12の整数)を返します。まず、必要なライブラリをインポートしましょう。import pandas as pdPeriodオブジェクトとはpandas.Period は、特定の周波数(freq)を持つ時間の区間を表すクラスです。日次・月次・年次など、さまざまな粒度の期間を扱うことができます。ここでは、2つの Period オブジェクトを作成します。1つ目は文字列から、2つ目は freq や year、month な
-
Python Pandas – Periodオブジェクトの時刻コンポーネントから「分」を取得する方法
はじめにPandasのPeriod(期間)オブジェクトが持つ時刻コンポーネントから「分」の値を取得したい場合は、period.minuteプロパティを使用します。まずは、必要なライブラリをインポートしましょう。import pandas as pdpandas.Periodは、特定の時点や期間を表すオブジェクトです。ここでは、2つのPeriodオブジェクトを作成してみます。1つ目は日時文字列から、2つ目は頻度(freq)と各日時要素を個別に指定して生成しています。period1 = pd.Period("2020-09-23 05:55:30") period2 = pd.