多層インデックスを活用したデータ操作は、大量の情報を効率的に処理する際に非常に有用です。この記事ではPythonのPandasライブラリを用いた多層インデックスの基本から、その高度な利用法までを網羅します。具体的なコード例とその詳細な解説、さらには応用例も交えて説明していきます。
目次
多層インデックスとは?
多層インデックス(Multi-Index)は、一般的なインデックスが一次元であるのに対して、複数の「層」で構成されるインデックスです。これにより、より複雑なデータ構造を効率的に扱うことができます。
基本的な作成方法
PandasのDataFrameで多層インデックスを作成する基本的な方法は以下の通りです。
import pandas as pd
# データと多層インデックスを作成
arrays = [
['A', 'A', 'B', 'B'],
[1, 2, 1, 2]
]
index = pd.MultiIndex.from_arrays(arrays, names=('letters', 'numbers'))
df = pd.DataFrame({'data': [10, 20, 30, 40]}, index=index)
print(df)
多層インデックスの操作
データの選択
多層インデックスを使って、特定のデータを効率的に選択する方法を見ていきましょう。
# 'A' グループのデータを選択
df.loc['A']
データのフィルタリング
複数の条件に基づいてデータをフィルタリングする例です。
# 'A' グループで、numbersが2以上のデータを選択
df.loc[('A', slice(2, None))]
多層インデックスの応用例
応用例1: 時系列データの処理
多層インデックスは、時系列データにおいても非常に役立ちます。
# 時間とIDで多層インデックスを作成
date = pd.date_range('2021-01-01', '2021-01-05')
ids = ['x', 'y']
multi_index = pd.MultiIndex.from_product([date, ids], names=['date', 'id'])
df_time = pd.DataFrame({'value': range(10)}, index=multi_index)
print(df_time)
応用例2: 複数のデータソースの統合
異なるデータソースからのデータを一つのDataFrameで扱う際にも多層インデックスが役立ちます。
# 店舗IDと商品IDで多層インデックスを作成
arrays = [
['Tokyo', 'Tokyo', 'Osaka', 'Osaka'],
['Apple', 'Banana', 'Apple', 'Banana']
]
index_shop = pd.MultiIndex.from_arrays(arrays, names=('shop', 'product'))
df_shop = pd.DataFrame({'price': [100, 200, 110, 190]}, index=index_shop)
print(df_shop)
まとめ
PythonのPandasライブラリを用いた多層インデックスの操作は、データ分析において多くの場面で有用です。この記事で紹介した基本的な操作や応用例を参考に、より高度なデータ操作を行ってみてください。
コメント