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

更新 發佈閱讀 9 分鐘
vocus|新世代的創作平台

🧪GroupBy能做什麼?

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

📌語法結構

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

🧱示意圖

vocus|新世代的創作平台

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

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

🔢常見聚合函式

vocus|新世代的創作平台

📘 範例

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")

vocus|新世代的創作平台



📚統計分析與資料摘要

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

📌 1. 常用統計方法

vocus|新世代的創作平台
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
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News