一、Pandas簡介
Pandas是一個數據分析工具,它提供了用於數據操作和分析的高效數據結構和函數。Pandas的核心數據結構是DataFrame和Series,在數據清理、預處理、可視化以及統計分析中都有廣泛的應用。
二、Pandas聚合功能介紹
Pandas聚合功能在數據分析中扮演著重要的角色,它可以對數據進行分類、分組、篩選、匯總和計算等操作,常用於數據透視表、統計分析、數據報表和可視化等領域。
Pandas提供了多種函數用於聚合操作,其中最常用的是aggregate函數。該函數可以對數據進行用戶自定義的聚合操作,例如求和、平均值、最大值、最小值、中位數、百分位數、方差和標準差等。
三、如何使用Pandas的aggregate函數進行數據匯總和計算
1. 對整個DataFrame進行聚合操作
對整個DataFrame進行聚合操作可以得到完整的數據匯總結果。
import pandas as pd # 創建DataFrame data = {'name': ['Tom', 'Jack', 'Mary'], 'age': [20, 30, 25], 'score': [90, 80, 95]} df = pd.DataFrame(data) # 聚合操作 result = df.agg({'age': ['min', 'max'], 'score': ['mean', 'std']}) print(result)
該代碼通過agg函數對DataFrame進行聚合操作,對年齡列求最小值和最大值,對分數列求平均值和標準差,輸出聚合結果。
2. 對分組數據進行聚合操作
對分組數據進行聚合操作可以得到每個分組的統計數據,例如每個班級的平均分、最高分、最低分等。
import pandas as pd # 創建DataFrame data = {'name': ['Tom', 'Jack', 'Mary', 'Lucy', 'Lily', 'Bob'], 'age': [20, 30, 25, 22, 28, 26], 'score': [90, 80, 95, 88, 92, 85], 'group': ['A', 'A', 'A', 'B', 'B', 'B']} df = pd.DataFrame(data) # 按班級分組,對每個班級的成績進行聚合操作 result = df.groupby('group').agg({'score': ['mean', 'min', 'max']}) print(result)
該代碼通過groupby函數將DataFrame按班級分組,對每個班級的成績列求平均值、最小值和最大值,輸出每個分組的聚合結果。
3. 對多個列進行聚合操作
對多個列進行聚合操作可以得到多維度的數據統計結果,例如每個班級的男女生平均分、最高分、最低分等。
import pandas as pd # 創建DataFrame data = {'name': ['Tom', 'Jack', 'Mary', 'Lucy', 'Lily', 'Bob'], 'age': [20, 30, 25, 22, 28, 26], 'score': [90, 80, 95, 88, 92, 85], 'group': ['A', 'A', 'B', 'B', 'A', 'B'], 'gender': ['男', '男', '女', '女', '男', '女']} df = pd.DataFrame(data) # 按班級和性別分組,對每個班級和性別的成績進行聚合操作 result = df.groupby(['group', 'gender']).agg({'score': ['mean', 'min', 'max']}) print(result)
該代碼通過groupby函數將DataFrame按班級和性別分組,對每個班級和性別的成績列求平均值、最小值和最大值,輸出多維度的數據統計結果。
4. 自定義聚合函數
自定義聚合函數可以靈活地對數據進行統計和計算,例如對成績進行標準化處理。
import pandas as pd # 自定義標準化函數 def std_func(x): return (x - x.mean()) / x.std() # 創建DataFrame data = {'name': ['Tom', 'Jack', 'Mary', 'Lucy', 'Lily', 'Bob'], 'age': [20, 30, 25, 22, 28, 26], 'score': [90, 80, 95, 88, 92, 85], 'group': ['A', 'A', 'B', 'B', 'A', 'B'], 'gender': ['男', '男', '女', '女', '男', '女']} df = pd.DataFrame(data) # 對每個班級和性別的成績進行自定義聚合操作 result = df.groupby(['group', 'gender']).agg({'score': std_func}) print(result)
該代碼通過自定義標準化函數std_func對每個班級和性別的成績進行聚合操作,輸出標準化後的聚合結果。
四、總結
本文介紹了如何使用Pandas的aggregate函數進行數據匯總和計算,包括對整個DataFrame進行聚合、對分組數據進行聚合、對多個列進行聚合以及自定義聚合函數等操作。Pandas提供了豐富的聚合功能,可以滿足不同的數據分析場景需求,讓數據分析更加高效和便捷。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/240062.html