Pandas を使ったデータの整形

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、sort_valuespivotpivot_tablemelt などのさまざまな関数を使用して、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_valuespivotpivot_tablemelt などの様々な関数を使って、pandas でデータを整形する方法を学びました。これらの手法を、タイタニック号と大気質のデータセットに適用して、データをソート、ピボット、メルトしました。これらの整形手法は、pandas でデータを扱う際に欠かせないもので、データの効率的な分析と可視化を支援します。