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