Pythonで多層インデックスを活用したデータ操作の実践的テクニック

多層インデックスを活用したデータ操作は、大量の情報を効率的に処理する際に非常に有用です。この記事では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ライブラリを用いた多層インデックスの操作は、データ分析において多くの場面で有用です。この記事で紹介した基本的な操作や応用例を参考に、より高度なデータ操作を行ってみてください。

コメント

コメントする

目次