《從零開始的資料科學筆記》Day#5:深入Pandas

更新 發佈閱讀 9 分鐘
raw-image

🧪GroupBy能做什麼?

groupby() 可將資料依照欄位分組,接著對每個群體套用統計或轉換函式,如同 SQL 中的 GROUP BY。 善用groupby()可以讓自己資料處理能力更上一層!!!

📌語法結構

df.groupby("欄位")[數值欄位].聚合函式()

🧱示意圖

raw-image

df.groupby("Category")["Sales"].sum()

→ A: 100 + 300 = 400 B: 200 + 400 = 600

🔢常見聚合函式

raw-image

📘 範例

import pandas as pd

df = pd.DataFrame({
'Department': ['Sales', 'Sales', 'HR', 'HR', 'IT'],
'Employee': ['Amy', 'Ben', 'Cara', 'Dan', 'Eve'],
'Salary': [70000, 80000, 60000, 62000, 75000],
'Bonus': [5000, 6000, 2000, 2500, 4000]
})

🎯範例1: 各部門薪資總和

df.groupby("Department")["Salary"].sum()

# 輸出
Department
HR 122000
IT 75000
Sales 150000

🎯範例2: 各部門薪資與獎金平均

df.groupby("Department")[["Salary", "Bonus"]].mean()

# 輸出
Salary Bonus
Department
HR 61000.0 2250.0
IT 75000.0 4000.0
Sales 75000.0 5500.0

🎯範例3: 統計摘要: .describe()

df.groupby("Department")["Salary"].describe()

# 輸出
count mean std ... 50% 75% max
Department ...
HR 2.0 61000.0 1414.213562 ... 61000.0 61500.0 62000.0
IT 1.0 75000.0 NaN ... 75000.0 75000.0 75000.0
Sales 2.0 75000.0 7071.067812 ... 75000.0 77500.0 80000.0

🧠說明

統計摘要這些資訊是我們初步了解資料時非常重要的部分!!! 唯有清楚資料的長相和特性後,才能正確地清理資料,去除雜訊,保留最有用的資訊!!!

📌 輸出欄位包含:count, mean, std, min, 25%, 50%, 75%, max

🎯 範例4: 多欄位分組

df.groupby(["Department", "Employee"])["Salary"].mean()

# 輸出
Department Employee
HR Cara 60000.0
Dan 62000.0
IT Eve 75000.0
Sales Amy 70000.0
Ben 80000.0

🎯範例5: 結合自訂函式與 agg()

df.groupby("Department")["Salary"].agg(['mean', 'max', 'std'])

df.groupby("Department").agg(
Salary_Avg=('Salary', 'mean'),
Bonus_Sum=('Bonus', 'sum')
)

# 輸出
mean max std
Department
HR 61000.0 62000 1414.213562
IT 75000.0 75000 NaN
Sales 75000.0 80000 7071.067812

Salary_Avg Bonus_Sum
Department
HR 61000.0 4500
IT 75000.0 4000
Sales 75000.0 11000

📊範例6: 簡單視覺化一下

df.groupby("Department")["Salary"].mean().plot(kind='bar', title="Avg Salary by Dept")

raw-image



📚統計分析與資料摘要

當我們拿到資料的第一步就是要先了解資料的長相與特性,使用Pandas讀取資料後可以直接進行初步的統計分析,有助於後續資料清理的工作!!! 實務上,了解資料特性時還會搭配視覺化來呈現,我在視覺化的文章裡會再多著墨。 這部分所提到的一些統計分析報表都是EXCEL裡面會有的,因此習慣EXCEL的人也可以在Pandas中找到類似的方式來使用。

📌 1. 常用統計方法

raw-image
df[["Salary", "Bonus"]].corr()

# 輸出
Salary Bonus
Salary 1.000000 0.911569
Bonus 0.911569 1.000000

說明

  • 數值越接近+1代表正相關性越大
  • 數值越接近0代表相關性越小
  • 數值越接近-1代表負相關性越大

🔎 應用場景:找出欄位間的線性相關性

📌 2. Pivot Table:類似 Excel 樞紐分析表

df.pivot_table(
index='Department', # 分組依據
values='Salary',
aggfunc='mean' # 聚合函式
)

# 輸出
Salary
Department
HR 61000.0
IT 75000.0
Sales 75000.0

說明

👉 可搭配 columns= 做交叉維度

📌 3. Crosstab:列聯表(分類統計)

pd.crosstab(df["Department"], df["Bonus"] > 3000)

# 輸出
Bonus False True
Department
HR 2 0
IT 0 1
Sales 0 2

說明

🔎 應用場景:統計分類交叉分佈,適合類別資料頻率分析

📌 4. 分組後排序 .sort_values()

df.groupby("Department")["Salary"].mean().sort_values(ascending=False)

# 輸出
Department
IT 75000.0
Sales 75000.0
HR 61000.0

說明

  • 可由ascending調整降冪還是升冪
留言
avatar-img
Ethan的AI學習筆記
8會員
33內容數
我是一個不務正業的資料科學家,從零開始學習的路途上跌跌撞撞,跌過許多坑,也撞過許多牆... 當有人迷失方向時,希望這些筆記可以成為你的指南針。
Ethan的AI學習筆記的其他內容
2025/06/09
🐼什麼是Pandas? Pandas 是 Python 最重要的資料處理與分析工具,名稱來自 "Panel Data"(跨時間的結構化資料),由 Wes McKinney 開發。 它提供兩個核心資料結構: Series:一維的資料列(類似 list) DataFrame:二維表格資料結構
Thumbnail
2025/06/09
🐼什麼是Pandas? Pandas 是 Python 最重要的資料處理與分析工具,名稱來自 "Panel Data"(跨時間的結構化資料),由 Wes McKinney 開發。 它提供兩個核心資料結構: Series:一維的資料列(類似 list) DataFrame:二維表格資料結構
Thumbnail
2025/06/07
再見NumPy 在學習完上一篇NumPy入門教學後,可以接著熟悉一下NumPy進階,這部分包含了許多資料前處理上常用的技巧和語法。 其實有更多的語法我沒有列出來,因為不只你們記不住,我也記不得! 這邊整理的都是比較常用的部分,其他函數等你們有用到的時候自然會知道~
Thumbnail
2025/06/07
再見NumPy 在學習完上一篇NumPy入門教學後,可以接著熟悉一下NumPy進階,這部分包含了許多資料前處理上常用的技巧和語法。 其實有更多的語法我沒有列出來,因為不只你們記不住,我也記不得! 這邊整理的都是比較常用的部分,其他函數等你們有用到的時候自然會知道~
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
分組依據是POWER QUERY將資料統計分析的一個功能,神似EXCEL函數的SUMIF與COUNTIF,不過他的使用上更加的方便與靈活,不需要寫函數也能將多條件、多結果的統計分析迅速呈現。 如下圖例子,要將左邊資料統計分析為右邊多種種結果,用POWER QUERY只要滑鼠點幾下,數據結果馬上
Thumbnail
分組依據是POWER QUERY將資料統計分析的一個功能,神似EXCEL函數的SUMIF與COUNTIF,不過他的使用上更加的方便與靈活,不需要寫函數也能將多條件、多結果的統計分析迅速呈現。 如下圖例子,要將左邊資料統計分析為右邊多種種結果,用POWER QUERY只要滑鼠點幾下,數據結果馬上
Thumbnail
如何計算某欄的平均數? 如何計算多個欄位的平均數? 如果想計算不同分組的平均數? 如何用Python計算某欄平均數 利用agg計算平均數 利用groupby建立分組,再用agg計算平均數
Thumbnail
如何計算某欄的平均數? 如何計算多個欄位的平均數? 如果想計算不同分組的平均數? 如何用Python計算某欄平均數 利用agg計算平均數 利用groupby建立分組,再用agg計算平均數
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News