《從零開始的資料科學筆記》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
留言分享你的想法!
avatar-img
Ethan的AI學習筆記
1會員
9內容數
我是一個不務正業的資料科學家,從零開始學習的路途上跌跌撞撞,跌過許多坑,也撞過許多牆... 當有人迷失方向時,希望這些筆記可以成為你的指南針。
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.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
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只要滑鼠點幾下,數據結果馬上
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News