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