PythonのPandasでのデータ集計について

Python,イメージ

AI実装検定のご案内

PythonのPandasを使ったデータ集計について、初心者から中級者レベルまで分かりやすく整理して解説します

実務でもよく使う機能なので、例を交えながら詳しくまとめます。

目次

Pandasでのデータ集計の基本

Pandasでは、主に以下の方法でデータを集計します。

  • groupby():カテゴリーごとの集計(SQLのGROUP BYに相当)
  • pivot_table():クロス集計表(Excelのピボットテーブルに相当)
  • crosstab():クロス集計(2軸の頻度表)
  • 集約関数(sum, mean, count, max, min など):統計量の算出

groupby() を使った集計

もっともよく使うのが groupby() です。

基本構文

df.groupby("列名")["数値列"].集約関数()

※このコード単体では、出力はできません。

例:商品カテゴリごとの売上合計

import pandas as pd

data = {
    "カテゴリ": ["A", "A", "B", "B", "C"],
    "売上": [100, 200, 300, 400, 500],
    "顧客数": [1, 2, 3, 4, 5]
}
df = pd.DataFrame(data)

df.groupby("カテゴリ")["売上"].sum()

複数列での集計

groupby() は複数列でも可能です。

df.groupby(["カテゴリ", "顧客数"])["売上"].sum()
  • 「カテゴリ」と「顧客数」の組み合わせごとに売上を合計
  • マーケティングでは「性別 × 地域 × 年代ごとの売上」などで応用できます。

複数の集約関数を同時に使う

agg() を使うと便利です。

df.groupby("カテゴリ").agg({
    "売上": ["sum", "mean", "max"],
    "顧客数": "count"
})

結果は見やすい「多重インデックス」のテーブルになり、統計レポートのように使えます。

ピボットテーブル (pivot_table)

Excelのピボットテーブルに近い形で集計できます。

pd.pivot_table(df, 
               values="売上", 
               index="カテゴリ", 
               columns="顧客数", 
               aggfunc="sum",
               fill_value=0)
  • index: 行の項目
  • columns: 列の項目
  • values: 集計対象の数値
  • aggfunc: 集計方法(sum, mean, count など)

クロス集計 (crosstab)

頻度(件数)をカウントするときに便利です。

pd.crosstab(df["カテゴリ"], df["顧客数"])

→ 「カテゴリ × 顧客数」の組み合わせ頻度を表にできます。
アンケート集計やアクセス解析でよく使います。

実務でよくある応用例

売上データ分析

  • 商品カテゴリごとの平均売上 → groupby("カテゴリ")["売上"].mean()
  • 月ごとの売上推移 → 日付列を pd.to_datetime に変換して df.resample("M")["売上"].sum()
  • 地域 × 商品ごとの売上合計 → pivot_table()

マーケティングデータ

  • 広告キャンペーン別のクリック数やCV数の合計
  • ユーザー属性(年齢 × 性別)の成約率のクロス集計
  • 時系列でのアクセス数やCV率の推移

集計後の可視化

集計結果はそのままグラフ化できます。

df.groupby("カテゴリ")["売上"].sum().plot(kind="bar")

マーケティング分析なら棒グラフ・折れ線グラフが定番です。
KPIを可視化してチーム内に共有するのに役立ちます。

まとめ

  • groupby():基本の集計(SQL感覚)
  • agg():複数の集計関数を同時に適用
  • pivot_table():Excelライクなクロス集計
  • crosstab():頻度集計
  • resample():時系列データの集計に便利

これらを組み合わせれば、売上分析・広告効果測定・アクセス解析など、実務でよく出てくる集計はほぼカバーできます。

以上、PythonのPandasでのデータ集計についてでした。

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

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