Pythonでグルーピングと集約を使ったデータ要約の実践ガイド

この記事では、Pythonを使用してデータのグルーピングと集約を行う具体的な手法について解説します。具体的なコード例、その詳細な解説、さらには応用例までを網羅的に説明しています。

目次

はじめに

Pythonはデータ解析のフィールドで非常に広く使用されています。特に、データのグルーピングと集約は、データ解析の基本的なステップの一つとされています。この記事では、初心者から中級者までが役立つ情報を提供します。

基本的なグルーピングと集約

Pythonでよく使用されるデータ解析のライブラリであるpandasを使い、基本的なグルーピングと集約の方法を見ていきます。

環境準備

まずは、pandasライブラリをインストールしましょう。

!pip install pandas

データのグルーピング

以下のように、DataFrameを作成し、`groupby`メソッドを使用してデータをグループ化します。

import pandas as pd

# データフレーム作成
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob', 'Charlie'],
    'Score': [90, 85, 77, 95, 80, 75],
    'Subject': ['Math', 'Math', 'Math', 'Science', 'Science', 'Science']
})

# Subjectごとにグループ化
grouped = df.groupby('Subject')

データの集約

集約を行うためには、`agg`メソッドを使用します。

# 平均値を計算
grouped_avg = grouped.agg({'Score': 'mean'})

print(grouped_avg)

複数の集約処理

複数の集約処理を一度に行いたい場合は、以下のようにします。

# 平均値と最大値を計算
grouped_multi = grouped.agg({'Score': ['mean', 'max']})

print(grouped_multi)

応用例

応用例1: 複数の列でグルーピング

複数の列を用いてグルーピングを行い、その上で集約を施す方法です。

# NameとSubjectでグルーピング
grouped_multiple = df.groupby(['Name', 'Subject']).agg({'Score': 'mean'})

print(grouped_multiple)

応用例2: カスタム集約関数の使用

`agg`メソッドにはPythonのカスタム関数も渡せます。

# 最大値と最小値の差を計算するカスタム関数
def max_min_diff(group):
    return group.max() - group.min()

# カスタム関数を使用して集約
grouped_custom = grouped.agg({'Score': max_min_diff})

print(grouped_custom)

まとめ

この記事では、Pythonを用いたデータのグルーピングと集約について解説しました。基本的な手法から応用例まで幅広くカバーしましたので、是非とも実践に活かしてみてください。

コメント

コメントする

目次