はじめに
この実験では、sort_values、pivot、pivot_table、melt などのさまざまな関数を使用して、pandas でデータを整形する方法を探ります。チタニック号と大気質のデータセットを使用して、整形技術を示します。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使用して練習します。
場合によっては、Jupyter Notebook が読み込み完了するまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題が発生した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
ライブラリのインポートとデータの読み込み
まず、必要なライブラリをインポートしてデータセットを読み込みましょう。
import pandas as pd
## チタニック号のデータセットを読み込む
titanic = pd.read_csv("data/titanic.csv")
## 大気質のデータセットを読み込む
air_quality = pd.read_csv("data/air_quality_long.csv", index_col="date.utc", parse_dates=True)
テーブルの行をソートする
チタニック号のデータセットを、乗客の年齢に基づいてソートし、その後、客室等級と年齢で降順にソートします。
## 年齢でソートする
titanic.sort_values(by="Age").head()
## 客室等級と年齢で降順にソートする
titanic.sort_values(by=['Pclass', 'Age'], ascending=False).head()
長形式のデータを幅広のテーブル形式に変換する
ここでは、pivot 関数を使用して、大気質の長形式のデータを幅広の形式に変換します。
## no2 データのみを抽出する
no2 = air_quality[air_quality["parameter"] == "no2"]
## 各場所(groupby)に対して 2 つの測定値(head)を使用する
no2_subset = no2.sort_index().groupby(["location"]).head(2)
## データをピボットする
no2_subset.pivot(columns="location", values="value")
ピボットテーブルを作成する
各測定所における 𝑁𝑂2 と 𝑃𝑀25 の平均濃度を求めるために、ピボットテーブルを作成します。
air_quality.pivot_table(
values="value", index="location", columns="parameter", aggfunc="mean"
)
幅広の形式を長形式に変換する
次に、melt 関数を使って、幅広の形式の 𝑁𝑂2 データを長形式に変換しましょう。
## no2_pivoted のインデックスをリセットする
no2_pivoted = no2.pivot(columns="location", values="value").reset_index()
## データをメルトする
no_2 = no2_pivoted.melt(id_vars="date.utc")
まとめ
この実験では、sort_values、pivot、pivot_table、melt などの様々な関数を使って、pandas でデータを整形する方法を学びました。これらの手法を、タイタニック号と大気質のデータセットに適用して、データをソート、ピボット、メルトしました。これらの整形手法は、pandas でデータを扱う際に欠かせないもので、データの効率的な分析と可視化を支援します。