PythonとPandasを使ったピボットテーブルの作成と平均値の計算

ピボットテーブルとは

ピボットテーブルは、データの集計や分析を行うための強力なツールです。大量のデータを簡単に要約し、特定の視点からデータを見ることができます。

具体的には、ピボットテーブルはデータセット内の複数の変数間の関係を探索するために使用されます。これは、データを「ピボット」(回転)させて、異なる視点から見ることができるためです。

PythonのPandasライブラリには、このピボットテーブルを簡単に作成するためのpivot_table関数が用意されています。この関数を使うと、データフレームの任意の列を行や列のインデックスとして使用し、その交点にある値を集計することができます。

次のセクションでは、このpivot_table関数の基本的な使い方について詳しく説明します。それでは、一緒に学んでいきましょう!

Pandasのpivot_table関数の基本的な使い方

Pandasのpivot_table関数は、データフレームからピボットテーブルを作成するための強力なツールです。この関数は以下のような形式で使用します。

pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

ここで、各パラメータの意味は以下の通りです。

  • data: ピボットテーブルを作成するための元となるデータフレーム。
  • values: 集計する列の名前。
  • index: ピボットテーブルの行に対応する列の名前。
  • columns: ピボットテーブルの列に対応する列の名前。
  • aggfunc: 集計関数(デフォルトは平均を計算する’mean’)。
  • fill_value: ピボットテーブル内の欠損値を埋めるための値。
  • margins: 行と列のすべての項目に対する集計結果を含めるかどうか(デフォルトはFalse)。
  • dropna: 列がすべてNaNである場合にそれを除外するかどうか(デフォルトはTrue)。
  • margins_name: marginsがTrueの場合に、集計結果の行/列の名前を指定します(デフォルトは’All’)。

以下に具体的な使用例を示します。

import pandas as pd

# データフレームの作成
df = pd.DataFrame({
    "A": ["foo", "foo", "foo", "foo", "foo", "bar", "bar", "bar", "bar"],
    "B": ["one", "one", "one", "two", "two", "one", "one", "two", "two"],
    "C": ["small", "large", "large", "small", "small", "large", "small", "small", "large"],
    "D": [1, 2, 2, 3, 3, 4, 5, 6, 7],
    "E": [2, 4, 5, 5, 6, 6, 8, 9, 9]
})

# ピボットテーブルの作成
pivot_df = pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'], aggfunc='mean')

print(pivot_df)

このコードは、’A’と’B’の列を行のインデックスとして、’C’の列を列のインデックスとして、’D’の列の平均値を計算するピボットテーブルを作成します。

次のセクションでは、このピボットテーブルを使って平均値の計算方法について詳しく説明します。それでは、一緒に学んでいきましょう!

平均値の計算方法

ピボットテーブルを使用して平均値を計算する方法は非常に簡単です。Pandasのpivot_table関数のaggfuncパラメータを'mean'に設定するだけで、指定した値の列の平均値を計算することができます。

以下に具体的な使用例を示します。

import pandas as pd

# データフレームの作成
df = pd.DataFrame({
    "A": ["foo", "foo", "foo", "foo", "foo", "bar", "bar", "bar", "bar"],
    "B": ["one", "one", "one", "two", "two", "one", "one", "two", "two"],
    "C": ["small", "large", "large", "small", "small", "large", "small", "small", "large"],
    "D": [1, 2, 2, 3, 3, 4, 5, 6, 7],
    "E": [2, 4, 5, 5, 6, 6, 8, 9, 9]
})

# ピボットテーブルの作成
pivot_df = pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'], aggfunc='mean')

print(pivot_df)

このコードは、’A’と’B’の列を行のインデックスとして、’C’の列を列のインデックスとして、’D’の列の平均値を計算するピボットテーブルを作成します。

このように、Pandasのpivot_table関数を使用すると、大量のデータから特定の視点での平均値を簡単に計算することができます。次のセクションでは、具体的な例とコードを用いて、これらの概念をさらに詳しく説明します。それでは、一緒に学んでいきましょう!

具体的な例とコード

それでは、具体的なデータを用いて、Pandasのpivot_table関数を使って平均値を計算する方法を見てみましょう。

import pandas as pd
import numpy as np

# データフレームの作成
df = pd.DataFrame({
    "City": ["Tokyo", "Tokyo", "Osaka", "Osaka", "Nagoya", "Nagoya"],
    "Season": ["Spring", "Summer", "Spring", "Summer", "Spring", "Summer"],
    "Temperature": [20, 30, 22, 33, 23, 31],
    "Humidity": [30, 45, 35, 50, 40, 55]
})

print("Original DataFrame:")
print(df)

# ピボットテーブルの作成
pivot_df = pd.pivot_table(df, values=['Temperature', 'Humidity'], index='City', columns='Season', aggfunc=np.mean)

print("\nPivot Table:")
print(pivot_df)

このコードは、都市(’City’)と季節(’Season’)によって温度(’Temperature’)と湿度(’Humidity’)の平均値を計算します。結果は、都市と季節によってインデックス付けされたピボットテーブルとして表示されます。

このように、Pandasのpivot_table関数を使用すると、大量のデータから特定の視点での平均値を簡単に計算することができます。これにより、データの理解を深め、より有意義な洞察を得ることができます。

以上で、PythonとPandasを使ったピボットテーブルの作成と平均値の計算についての説明を終わります。この知識を活用して、自分のデータ分析プロジェクトを進めてみてください。それでは、ハッピーコーディング!

Comments

No comments yet. Why don’t you start the discussion?

コメントを残す

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