Pandasでマルチカラムを操作する方法

マルチカラムの準備

Pandasでは、マルチカラム(複数のレベルを持つカラム)を作成することができます。これは、データが複数のカテゴリに分類される場合や、階層的なデータ構造を持つ場合に便利です。

まず、pandasライブラリをインポートします。

import pandas as pd

次に、マルチカラムを持つDataFrameを作成します。以下の例では、’A’と’B’の2つの主要なカラムがあり、それぞれに’Sub1’と’Sub2’の2つのサブカラムがあります。

# マルチカラムの作成
columns = pd.MultiIndex.from_tuples([('A', 'Sub1'), ('A', 'Sub2'), ('B', 'Sub1'), ('B', 'Sub2')])

# データの作成
data = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]

# DataFrameの作成
df = pd.DataFrame(data, columns=columns)

print(df)

このコードを実行すると、マルチカラムを持つDataFrameが作成されます。これで、マルチカラムの準備が完了しました。次のステップでは、これらのマルチカラムをどのように操作するかを学びます。

マルチカラムの操作

マルチカラムの操作は、シングルカラムの操作と基本的には同じですが、いくつかの特殊なケースがあります。

カラムの選択

マルチカラムのDataFrameから特定のカラムを選択するには、カラム名をタプルとして指定します。

# 'A'カラムの'Sub1'を選択
df_A_Sub1 = df[('A', 'Sub1')]
print(df_A_Sub1)

カラムの更新

マルチカラムの更新も、シングルカラムと同様に行うことができます。

# 'A'カラムの'Sub1'を更新
df[('A', 'Sub1')] = [100, 200, 300]
print(df)

カラムの追加

新しいカラムを追加するには、新しいカラム名をタプルとして指定し、値を設定します。

# 新しいカラム'C'の'Sub1'を追加
df[('C', 'Sub1')] = [400, 500, 600]
print(df)

これらの基本的な操作をマスターすれば、マルチカラムのDataFrameを自由に操作することができます。次のステップでは、マルチカラムの削除方法を学びます。

マルチカラムの削除

マルチカラムの削除は、シングルカラムの削除と同様に drop メソッドを使用します。ただし、マルチカラムを削除する場合は、カラム名をタプルとして指定する必要があります。

以下に、マルチカラムの削除方法を示します。

# 'A'カラムの'Sub1'を削除
df = df.drop(('A', 'Sub1'), axis=1)
print(df)

このコードを実行すると、’A’カラムの’Sub1’が削除されたDataFrameが出力されます。

また、複数のカラムを一度に削除することも可能です。その場合は、削除したいカラム名のタプルをリストとして drop メソッドに渡します。

# 'A'カラムの'Sub2'と'B'カラムの'Sub1'を削除
df = df.drop([('A', 'Sub2'), ('B', 'Sub1')], axis=1)
print(df)

このように、マルチカラムの削除はシングルカラムの削除と基本的に同じで、カラム名をタプルとして指定する点が異なります。これで、マルチカラムの削除方法を学びました。次のステップでは、マルチカラムの抽出方法を学びます。

マルチカラムの抽出

マルチカラムのDataFrameから特定のカラムを抽出するには、xsメソッドを使用します。このメソッドは、マルチインデックスの特定のレベルを指定してデータを抽出するためのものです。

以下に、マルチカラムの抽出方法を示します。

# 'A'カラムを抽出
df_A = df.xs('A', axis=1, level=0)
print(df_A)

このコードを実行すると、’A’カラムのすべてのサブカラムが含まれたDataFrameが出力されます。

また、特定のサブカラムを抽出することも可能です。その場合は、xsメソッドのlevelパラメータにサブカラムのレベルを指定します。

# 'Sub1'サブカラムを抽出
df_Sub1 = df.xs('Sub1', axis=1, level=1)
print(df_Sub1)

このコードを実行すると、すべての主要カラムの’Sub1’が含まれたDataFrameが出力されます。

これらの方法を使えば、マルチカラムのDataFrameから特定のカラムやサブカラムを簡単に抽出することができます。次のステップでは、マルチカラムの更新方法を学びます。

マルチカラムの更新

マルチカラムの更新は、シングルカラムの更新と同様に行うことができます。ただし、マルチカラムを更新する場合は、カラム名をタプルとして指定する必要があります。

以下に、マルチカラムの更新方法を示します。

# 'A'カラムの'Sub1'を更新
df[('A', 'Sub1')] = [100, 200, 300]
print(df)

このコードを実行すると、’A’カラムの’Sub1’が更新されたDataFrameが出力されます。

また、複数のカラムを一度に更新することも可能です。その場合は、更新したいカラム名のタプルをリストとして指定し、値を設定します。

# 'A'カラムの'Sub2'と'B'カラムの'Sub1'を更新
df[('A', 'Sub2'), ('B', 'Sub1')] = [[400, 500, 600], [700, 800, 900]]
print(df)

このように、マルチカラムの更新はシングルカラムの更新と基本的に同じで、カラム名をタプルとして指定する点が異なります。これで、マルチカラムの更新方法を学びました。次のステップでは、マルチカラムの削除方法を学びます。

投稿者 karaza

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です