Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

Pandas MultiIndex

【Pandas入門】MultiIndexを使って複数列のインデックスをもつデータフレームを作る方法の解説

pandas.MultiIndex.from_arraysを使って複数列のインデックスをもつデータフレームを作る方法の解説。

通常データ分析でPandasなどを使うときはCSVファイルやエクセルファイルなどを読み込んで使うことが多いと思いますが、そうしたデータがないとき、あるいはそんな本格的なデータは必要とせずにちょっとしたコードを試して遊んでみるときなど、自分でデータフレーム(表のようなもの)を作りたいときがあります。

今回はそんなふうに、自分でちょっとした少ないデータから構成されるデータフレームオブジェクトを作る方法を紹介します。今回のポイントは、pandas.MultiIndexの使い方です。

今回作るデータフレーム

今回作るデータフレームの完成イメージがこちらです。

こうしたデータフレームを作るために今回使うのはpandas.MultiIndex.from_arraysです。

pandas.MultiIndex.from_arraysとは

pandasには、インデックスオブジェクト(Index Object)というオブジェクトがあります。名前のとおりインデックス情報を扱うオブジェトです。このインデックスオブジェクトは、マルチインデックス・コンストラクター(MultiIndex constructors)というメソッドを持っています。

このコンストラクターの1つに、今回使うpandas.MultiIndex.from_arraysというものがあります。

公式ドキュメント:pandas.MultiIndex.from_arrays

これは名前のとおり、リストなど「配列っぽいオブジェクト(sequence of array-likes)」から複数のインデックスを作成できるメソッドです。

では実際に使ってみましょう。

MultiIndexを使ってデータフレームを作る

上のようなデータフレームを作るための今回のコードがこちらです。

import pandas as pd

# インデックスとなる配列(Python上はリスト)を作成
index_arrays = [
        ["M", "M", "M", "F", "F", "M", "F"], 
        ["Android", "iPhone", "Android", "iPhone", "iPhone", "iPhone", "Android"]
    ]

# 上のindex_arraysを使って、複数列のインデックスを作成
multi_index = pd.MultiIndex.from_arrays(index_arrays, names=('Gender', 'Smartphone'))

# 列Ageと列Countryとなる辞書型データを作成
data_dic = {"Age":["18", "18", "25", "30", "16", "15", "21"], "Country":["JP", "US", "US", "UK", "FR", "VN", "CN"]}
    
# 以上のデータからデータフレーム作成
df = pd.DataFrame(data=data_dic,index=multi_index)

# データフレーム表示
df

特に難しい処理や特殊な書き方はしていないのでコメントを読んでいただければ理解していただけると思います。これを実行すると上の画像のとおり次のようなデータフレームができあがります。

今回のコードをいろいろいじってみて、複数のインデックスをもつデータフレームを自作することに慣れてみてください。良い感じに出来上がったそのコードは保存しておくと、次にちょっと遊んでみたいときに使えて便利です。毎回データフレームを自作するのは面倒ですからね。

世界最大級のオンライン学習プラットホームUdemy(ユーデミー)では、Pythonやデータ分析の様々な講座が用意されています。大幅に割引されるセールもよく開催されています。

Udemyでお得なデータ分析・データサイエンス講座を探す

愛を分かち合いましょう