跳到主要內容
Cypher's Practical Coding
正在啟動 Python 環境(首次約 15 秒)...

分組統計

電商老闆常問「不同渠道的業績怎麼樣?」「哪個商品類別最賺?」。如果你還在 Excel 樞紐分析表手動拖拉,pandas 的 groupby() 讓你用同樣思維,在程式裡秒算出答案。

你會學到什麼

  • groupby() 先分組再統計,快速得到各類別、各渠道的指標
  • 使用 .agg() 一次產出多種統計量,省去重複計算
  • 判斷什麼時候用 value_counts(),什麼時候用 groupby().count()

GROUP BY 概念

在 Excel 樞紐分析表,你會「選欄位分組 → 選統計方式」。groupby() 也是兩步:

  1. 先按欄位把資料拆成小群組
  2. 再對每組套用統計(平均、總和、數量...)

結果通常是 SeriesDataFrame,取決於你選了一個欄位還是多個欄位。

小提醒:欄位名一定要用引號 groupby("渠道"),不要寫成 groupby(渠道),否則 Python 會以為那是變數名稱。

多種統計

.agg() 就像在樞紐分析表一次勾選「筆數、總和、平均」。你為每個欄位指定多個函式,pandas 會自動逐組計算,回傳一個整齊的 DataFrame,適合直接匯出或做後續視覺化。

小提醒:.agg() 裡的語法是 新欄名=("原欄位", "統計函式"),記得用小括號包起來。

計數

如果你只想知道「某欄位各值出現幾次」,value_counts() 最快,會直接回傳排序好的結果。groupby().count() 則會對每組計算「每個欄位的非空數量」,適合已分組後對多欄位同時計數。

小提醒:groupby() 取單一欄位再算統計時回傳的是 Series,需要 reset_index() 才會變回 DataFrame。取特定組別結果時用 result["web"]

AI 協作:學了這個,跟 AI 怎麼配合?

groupby 就像 Excel 樞紐分析表——AI 幫你寫語法,但「怎麼分組、算什麼」你決定。

你的人類優勢:

  • 你知道報表要「按月」還是「按季」、「按城市」還是「按業務員」彙總
  • 你能判斷彙總結果是否跟你手算的大數對得上

可以這樣跟 AI 說:

幫我用 groupby 統計每個商品類別的總銷售額和平均客單價,結果按總銷售額排序。

練習題

互動示範

DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩
DEMO 3可以修改程式碼試玩

挑戰任務

Task 1

建立 DataFrame:渠道 ['web','app','web','store','app','web']、金額 [1500,2300,800,3500,1200,950],印出 web 的訂單數

Task 2

使用同上資料,印出 app 渠道的總金額

Task 3

使用同上資料,用 nunique() 印出共有幾種不同的渠道

BackNext Lesson →