Python Pandas:MultiIndexのレベルを列としてDataFrameを作成する方法(インデックスを設定しない)
MultiIndexの各レベルを列として持つDataFrameを作成するには、multiIndex.to_frame()メソッドを使用します。このとき、indexパラメータをFalseに設定することで、返されるDataFrameに対してインデックスが自動的に設定されるのを防ぐことができます。
まず、必要なライブラリをインポートします。
import pandas as pd
MultiIndexとは、pandasオブジェクト向けのマルチレベル(階層型)インデックスオブジェクトのことです。ここでは、まず元となる配列を作成します。
arrays = [[1, 2, 3, 4], ['John', 'Tim', 'Jacob', 'Chris']]
「names」パラメータを使用すると、各インデックスレベルに名前を付けることができます。そして、from_arrays()メソッドを使ってMultiIndexを作成します。
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
to_frame()メソッドを使えば、MultiIndexの各レベルを列として持つDataFrameを生成できます。ここで「index」パラメータを「False」に指定すると、返されるDataFrameのインデックスとしてMultiIndexが設定されず、通常の連番インデックスになります。
dataFrame = multiIndex.to_frame(index=False)
実行例
以下に完全なコードを示します。
import pandas as pd
# MultiIndexは、pandasオブジェクトのためのマルチレベル(階層型)インデックスオブジェクト
# 配列を作成
arrays = [[1, 2, 3, 4], ['John', 'Tim', 'Jacob', 'Chris']]
# 「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)
# to_frame()を使って、MultiIndexのレベルを列として持つDataFrameを作成
# 「index」パラメータを「False」に設定し、返されるDataFrameへのインデックス設定を回避
dataFrame = multiIndex.to_frame(index=False)
# DataFrameを表示
print("\nThe DataFrame...\n", dataFrame)
出力結果
上記のコードを実行すると、以下のような出力が得られます。
The Multi-index...
MultiIndex([(1, 'John'),
(2, 'Tim'),
(3, 'Jacob'),
(4, 'Chris')],
names=['ranks', 'student'])
The levels in Multi-index...
[[1, 2, 3, 4], ['Chris', 'Jacob', 'John', 'Tim']]
The DataFrame...
ranks student
0 1 John
1 2 Tim
2 3 Jacob
3 4 Chris
-
Python Pandas入門:query()メソッドでDataFrameの列をクエリ(条件抽出)する方法
PandasのDataFrameで列をクエリ(条件による絞り込み)を行うには、query()メソッドを使用します。query()は、文字列形式の条件式を渡すだけで直感的にレコードをフィルタリングできる便利な機能です。 サンプルDataFrameの作成 まず、商品名・期首在庫・期末在庫を持つDataFrameを作成してみましょう。 import pandas as pd dataFrame = pd.DataFrame({ Product: [SmartTV, PenDrive, Speaker, Earphone], Opening_Stock: [300, 700, 1
-
Python Pandas – データフレームのインデックスをマルチインデックス形式で表示する方法
Pandas のデータフレームでインデックスをマルチインデックス(MultiIndex)形式で表示するには、dataframe.index を使用します。まずは、リストからなる辞書を作成してみましょう。 # リストの辞書 d = {Car: [BMW, Lexus, Audi, Mercedes, Jaguar, Bentley], Date_of_purchase: [2020-10-10, 2020-10-12, 2020-10-17, 2020-10-16, 2020-10-19, 2020-10-22]} 上記の辞書をもとに、DataFrame を作成します。 dataFra