CodeGym /Java Adesua /Python SELF TW /資料分組與計算總和及平均值

資料分組與計算總和及平均值

Python SELF TW
等級 28 , 課堂 0
開放

1. 資料分組簡介

資料分組的原理

在現實生活中,我們經常根據某些特徵對物件進行分組:書籍跟書籍一起,蔬菜跟蔬菜一起,人跟人在一起(你懂的)。在程式設計中也是類似的。 資料分組允許我們將大量資料拆分為更小、更易於管理的部分,進而分析它們。

在 pandas 中,可以使用 groupby 方法來進行分組,該方法可以將資料拆分為多個組,並對每個組執行不同的操作。例如,您可以按商店部門分組銷售額,然後計算每個部門的總收入。

以下是一個範例,展示這樣的操作:

Python

import pandas as pd

# 創建一個包含銷售數據的 DataFrame
data = {'部門': ['食品', '科技', '食品', '書籍', '科技'],
        '收入': [100, 200, 150, 50, 300]}

df = pd.DataFrame(data)

# 按部門分組並計算總收入
組 = df.groupby('部門')['收入'].sum()
print(組)

分組的應用範例

當需要比較不同類別之間的數據時,分組特別有用。例如,您在 HR 工作,想了解不同部門的平均薪資,或者您是市場行銷人員,想知道每個產品在哪個月的銷售最多。 使用 pandas 的分組功能可大大簡化這些任務。

2. 計算聚合函數

聚合函數簡介

聚合函數是一種專門用於一組資料並返回單一值的函數。最常見的有 sum(總和),mean(平均值),以及 count(元素數量)。這些函數使得大量資訊可以轉化為簡單且易於理解的指標。

使用聚合函數

在上一個例子中,我們已看到如何計算總和。現在讓我們看看如何計算每個部門的平均值與銷售次數。

Python

# 計算每個部門的平均收入
平均值 = df.groupby('部門')['收入'].mean()
print(平均值)

# 計算每個部門的銷售次數
次數 = df.groupby('部門')['收入'].count()
print(次數)

聚合計算的應用範例

假設您有一組有關網站訪問者的數據,並想了解每週每天平均有多少人訪問。這是一個典型的使用分組和 mean 函數的任務。

Python

data = {'星期': ['一', '二', '三', '四', '五', '三', '二'],
        '訪問量': [120, 150, 170, 160, 180, 300, 220]}

df = pd.DataFrame(data)

# 計算每週每天的平均訪問量
平均訪問量 = df.groupby('星期')['訪問量'].mean()
print(平均訪問量)

3. 實踐練習

分組與聚合計算的練習題

假設您有一組有關銷售的數據。目標是:根據類別進行分組,並計算總銷售額、平均訂單金額和每個類別的訂單數量。 這將幫助您了解哪些商品類別帶來了最大的利潤,以及潛在的「金礦」在哪裡。

Python

data = {
    '類別': ['電子產品', '服裝', '電子產品', '書籍', '書籍', '服裝'],
    '訂單金額': [250, 100, 150, 200, 500, 300]
}

df = pd.DataFrame(data)

# 計算每個類別的總銷售額
總銷售額 = df.groupby('類別')['訂單金額'].sum()
print(總銷售額)

# 計算每個類別的平均訂單金額
平均訂單金額 = df.groupby('類別')['訂單金額'].mean()
print(平均訂單金額)

# 計算每個類別的訂單數量
訂單數量 = df.groupby('類別')['訂單金額'].count()
print(訂單數量)

分組結果討論與數據分析

在完成分組和聚合的任務後,進行數據分析是非常有用的。您可能會發現,例如,「書籍」類別的訂單總金額最大,這主要是由少量但金額較高的訂單貢獻的。 或者「服裝」類別的訂單數量最多,但平均訂單金額低於「電子產品」。

這類分析能夠幫助做出合理的商業決策,例如專注於增加訂單量大的類別的平均訂單金額,從而提升總營收。

4. 錯誤與注意事項

在進行分組操作時,一個常見的錯誤是忘記在使用聚合函數時加上括號。例如,寫成 df.groupby('類別').sum(),而不是 df.groupby('類別')['訂單金額'].sum()。 此外,有時可能會遇到數據缺失的問題。Pandas 提供了方便的方法來處理缺失值,例如 fillna(),它允許您用指定的值替換缺失值,以避免計算結果的偏差。

另外,請確保數據的類型是正確的。有時數字列可能會被讀取為字串,嘗試對這些數據進行聚合時會出現錯誤。

如果您需要深入學習 pandas 的分組方法,請查閱 pandas 官方文檔 ,那裡提供了更詳盡的介紹和範例。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION