はじめに
この実験では、Python の Pandas ライブラリの droplevel() メソッドの使い方を学びます。droplevel() メソッドは、DataFrame のインデックスまたは列から 1 つ以上のレベルを削除するために使用されます。このメソッドの使い方を理解するために、例を通して説明します。
VM のヒント
VM の起動が完了したら、左上隅をクリックして Notebook タブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み完了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートする
始めに、データを表形式で扱う機能を提供する pandas ライブラリをインポートする必要があります。
import pandas as pd
DataFrame を作成する
次に、操作対象の DataFrame を作成しましょう。サンプル データを使って pd.DataFrame() 関数を使って DataFrame を作成します。また、set_index() メソッドを使ってマルチ レベル インデックスを設定します。
df = pd.DataFrame([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]]).set_index([0, 1]).rename_axis(['a', 'b'])
df.columns = pd.MultiIndex.from_tuples([('c', 'e'), ('d', 'f')], names=['level_1', 'level_2'])
print(df)
インデックスから 1 つのレベルを削除する
DataFrame のインデックスからレベルを削除するには、droplevel() メソッドを使用できます。これを行うには、削除したいレベルを droplevel() メソッドの引数として指定する必要があります。このメソッドは、指定されたレベルが削除された新しい DataFrame を返します。
dropped_level_df = df.droplevel('a')
print(dropped_level_df)
列から 1 つのレベルを削除する
同様に、droplevel() メソッドを使用して DataFrame の列からレベルを削除することができます。削除したいレベルと、列からレベルを削除していることを示すために axis パラメータを 1 に指定する必要があります。
dropped_level_df = df.droplevel('level_2', axis=1)
print(dropped_level_df)
インデックスから複数のレベルを削除する
場合によっては、インデックスから複数のレベルを削除したい場合があります。これを行うには、レベルのリストを droplevel() メソッドに渡すことができます。このメソッドは、インデックスから指定されたすべてのレベルを削除し、新しい DataFrame を返します。
dropped_levels_df = df.droplevel(['a', 'b'])
print(dropped_levels_df)
まとめ
この実験では、Python の Pandas ライブラリにおける droplevel() メソッドの使い方を学びました。このメソッドを使って、DataFrame のインデックスと列からレベルを削除する方法を学びました。また、インデックスから複数のレベルを削除する方法も学びました。このメソッドは、DataFrame の構造を操作して、不要なレベルをインデックスや列から削除する際に便利です。