iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
自我挑戰組

Pandas|資料前處理工具 系列 第 18

Day 18|資料的分組和聚合

  • 分享至 

  • xImage
  •  

  在大型數據當中,有時我們會需要透過群組的方式概括整體資料,除了用以觀察之外,也能進一步深入處理,本文將分享如何使用資料的分組和聚合操作,內容包含:

  1. 資料分組與檢視:groupby( )get_group( )
  2. 資料聚合:agg( )

■ 案例

  1. 商品清單
    https://ithelp.ithome.com.tw/upload/images/20231003/20162238skr5WMZ7yJ.jpg

  2. 程式碼

import pandas as pd
data = {'商品':['牛奶','奇異果','起司','葡萄','和牛','蘋果'],
        '類別':['奶製品','水果','奶製品','水果','肉品','水果'],
        '產地':['日本','紐西蘭','美國','紐西蘭','日本','美國'],
        '單價':[189,40,109,200,350,35],
        '數量':[5,125,32,15,24,89]}
df = pd.DataFrame(data)

■ 實作|資料分組與檢視

Pandas 提供 groupby('欄位名稱') 將資料依據指定欄位進行分組,但不會改變原始數據或直接顯示內容,需使用 get_group('欲檢視的資料') 檢視特定資料
舉例:將資料依照「產地」分組,並檢視來自「紐西蘭」的商品資訊

# 依「產地」分組
grouped = df.groupby('產地')
# 檢視「產地」中「紐西蘭」的商品資訊
print(grouped.get_group('紐西蘭'))

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20231003/20162238POktXUsNHw.png

■ 實作|資料聚合

使用 Pandas 提供的 groupby('欄位名稱') 將資料分組後,以 agg(func) 彙總和計算資料。
舉例:將資料依照「類別」分組,並計算產地數量、商品清單、平均價位

grouped = df.groupby('類別').agg({'產地':'count','商品':','.join,'單價':'mean'})
print(grouped)

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20231003/20162238ysdHGpgiGY.jpg

■ 結語

資料的分組 groupby( ) 與聚合 agg( ) 是數據分析中經常一起使用的組合,大家有空可以試試!如果有任何不理解、錯誤或其他方法想分享的話,歡迎留言給我!喜歡的話,也歡迎按讚訂閱唷!

我是 Eva,一位正在努力跨進資料科學領域的女子!我們下一篇文章見!Bye Bye~
【本篇文章將同步更新於個人的 Medium,期待與您的相遇!】


上一篇
Day 17|資料合併的三種常用語法
下一篇
Day 19|用 Pandas 快速完成樞紐分析
系列文
Pandas|資料前處理工具 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言