Python Pandas入門:データフレームからマルチインデックスを作成する方法
Pandasのデータフレーム(DataFrame)からマルチインデックス(MultiIndex)を作成するには、MultiIndex.from_frame() メソッドを使用します。このメソッドを使うと、既存のデータフレームの列をそのまま階層的なインデックスへと変換でき、多次元データの扱いが格段に便利になります。
マルチインデックス作成の基本手順
1. リストからなる辞書を用意する
まず、サンプルデータとして車種と購入日を持つ辞書を作成します。
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']}2. 辞書からデータフレームを作成する
次に、上記の辞書をもとにPandasのデータフレームを生成します。
dataFrame = pd.DataFrame(d)
3. from_frame()でマルチインデックスを作成する
最後に、pd.MultiIndex.from_frame() にデータフレームを渡すことで、マルチインデックスが生成されます。
print(pd.MultiIndex.from_frame(dataFrame))
完全なサンプルコード
以下に、ここまでの手順をまとめた実行可能なコード全体を示します。
import pandas as pd
# リストからなる辞書を定義
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 = pd.DataFrame(d)
print("DataFrame...\n", dataFrame)
# マルチインデックスを作成して表示
print(pd.MultiIndex.from_frame(dataFrame))実行結果
上記のコードを実行すると、次のような出力が得られます。
DataFrame...
Car Date_of_purchase
0 BMW 2020-10-10
1 Lexus 2020-10-12
2 Audi 2020-10-17
3 Mercedes 2020-10-16
4 Jaguar 2020-10-19
5 Bentley 2020-10-22
MultiIndex([('BMW', '2020-10-10'),
('Lexus', '2020-10-12'),
('Audi', '2020-10-17'),
('Mercedes', '2020-10-16'),
('Jaguar', '2020-10-19'),
('Bentley', '2020-10-22')],
names=['Car', 'Date_of_purchase'])ポイント解説
- MultiIndex.from_frame() は、データフレームのすべての列をインデックスレベルとして使用します。特定の列だけを使いたい場合は、引数に
dataFrame[['Car']]のように列を指定したデータフレームを渡します。 - 出力結果の
names=[...]には、元のデータフレームの列名がそのまま引き継がれるため、後からインデックスの意味が分かりやすくなります。 - 作成したマルチインデックスは、
set_index()メソッドやdf.indexへの代入によって、別のデータフレームの階層型インデックスとして再利用できます。
このように、MultiIndex.from_frame() を活用すれば、既存のデータフレームから簡単かつ直感的に階層型インデックスを構築できます。時系列データやカテゴリごとの集計など、複数のキーでデータを整理したい場面でぜひ活用してみてください。
-
Python Pandasで横棒グラフを作成する方法
Pandasで横棒グラフを描画するには、pandas.DataFrame.plot.barhを使用します。棒グラフは、離散的なカテゴリ同士を比較する際に非常に有効な可視化手法であり、特にカテゴリ名が長い場合には、縦棒グラフよりも横棒グラフの方が読みやすくなります。必要なライブラリのインポートまず、データ操作用のpandasと、グラフ描画用のmatplotlib.pyplotをインポートします。import pandas as pd import matplotlib.pyplot as pltDataFrameの作成次に、4つの列(車種、排気量、登録価格、販売台数)を持つPandas Data
-
Pythonで同じ長さの複数のリストから辞書を使ってPandas DataFrameを作成する方法
PandasのDataFrameはさまざまな方法で作成できます。その一つが、辞書(dict)をDataFrameに変換するアプローチです。本記事では、同じ長さを持つ3つのリストをPythonの辞書にまとめ、それをPandasのデータフレームへ変換する2つの方法を解説します。 方法1:個別に宣言したリストと辞書を使う このアプローチでは、まず各リストを個別に宣言します。次に、それぞれのリストを対応するキーの値として辞書定義の中に格納し、最後に pd.DataFrame メソッドを辞書に適用してデータフレームを生成します。 コード例 import pandas as pd # 試験スケジュー