PythonのPandasのgroupbyとsumについて

Python,イメージ

AI実装検定のご案内

pandasgroupbysum は、データを「グループ化」して「集計」するための非常に重要な機能です。

特にデータ分析やレポート作成の場面で頻繁に使われます。

目次

基本的な考え方

  • groupby:指定した列ごとにデータを「グループ」に分ける。
  • sum:数値の列を「合計」する。

つまり、groupby は「分類する」役割、sum は「集計する」役割を持ちます。

この 2 つを組み合わせると「カテゴリごとの売上合計」や「年度ごとの支出合計」などを簡単に求められます。

サンプルデータ

import pandas as pd

# サンプルデータを作成
data = {
    'Category': ['A', 'A', 'B', 'B', 'C', 'A'],
    'Value1': [10, 20, 30, 40, 50, 60],
    'Value2': [1, 2, 3, 4, 5, 6]
}

df = pd.DataFrame(data)
print("=== 元データ ===")
print(df)

単純にカテゴリごとに合計

print("=== Categoryごとの合計 ===")
result = df.groupby('Category').sum()
print(result)

Category A の場合は 10 + 20 + 60 = 90 などが計算されています。

複数列での groupby

もし複数の列でグループ化したい場合は、リストで渡します。

df.groupby(['Category', 'Value2']).sum()

「カテゴリ × 値2」の組み合わせごとに合計が出せます。

特定の列だけ合計したい場合

デフォルトの .sum() は数値列すべてを合計します。

列を指定するには次のようにします。

df.groupby('Category')['Value1'].sum()

Value1 のみ合計。

reset_index で見やすくする

groupby の結果はインデックスにグループ名が入るため、通常の列に戻したい場合は reset_index() を使います。

df.groupby('Category')['Value1'].sum().reset_index()

他の集計関数との違い

sum() 以外にも、平均 (mean)、最大値 (max)、最小値 (min)、件数 (count) などを使えます。

また、複数同時に集計するなら agg を使います:

df.groupby('Category').agg({'Value1': ['sum', 'mean'], 'Value2': 'max'})

実務でのよくある使い方

  • 売上データ
    「月ごとの売上合計」:df.groupby('Month')['Sales'].sum()
  • アクセスログ
    「ユーザーごとのアクセス数」:df.groupby('UserID')['AccessCount'].sum()
  • 商品分析
    「カテゴリごとの在庫数合計」:df.groupby('Category')['Stock'].sum()

まとめ

  • groupby は「グループ分け」、sum は「合計」。
  • df.groupby('列') → グループごとに処理。
  • .sum() は数値列すべてが対象。特定の列は ['列'] で指定。
  • 見やすさのために reset_index() を併用することが多い。
  • 実務では「売上合計」「件数集計」などに頻繁に活用。

以上、PythonのPandasのgroupbyとsumについてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次