一、Pandasagg簡介
在數據分析的過程中,將數據以矩陣或表格的形式進行呈現是十分常見的需求。而數據分析庫Pandas,則是Python領域中最受歡迎的處理表格數據的庫之一。Pandasagg則是在Pandas庫的基礎之上,針對新舊版本的Pandas進行了兼容性改進的擴展性工具。
具體而言,Pandasagg提供了一種多重分組和聚合的方法,並能夠將結果以新的格式和方式進行輸出。使用Pandasagg不僅可以更容易地完成針對數據表格的聚合操作,還能夠與其他Python數據分析工具(如Matplotlib等)進行無縫整合。
import pandas as pd
import numpy as np
import pandasagg as pg
# 構造數據
data = {'group': ['A', 'B', 'C', 'A', 'B', 'C'], 'value': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# 使用pandasagg進行多重分組和聚合
df_agg = df.groupby('group').agg(
pg.MultiAgg(
pg.Count(),
pg.ArgMax('value'),
pg.ArgMin('value'),
pg.Percentile('value'),
pg.Mean(),
pg.Median(),
pg.StdDev()
)
)
print(df_agg)
二、Pandasagg的用法
1. 多重聚合
Pandasagg主要提供了一種多重聚合(MultiAgg)的方式,這種方式能夠將多種聚合操作在同一行代碼中完成。定義多重聚合操作時,可以通過指定需要進行的聚合方式,來進行多重聚合操作。
# 構造數據
data = {'group': ['A', 'B', 'C', 'A', 'B', 'C'], 'value': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# 使用pandasagg進行多重聚合
df_agg = df.groupby('group').agg(
pg.MultiAgg(
pg.Count(),
pg.ArgMax('value'),
pg.ArgMin('value'),
pg.Percentile('value'),
pg.Mean(),
pg.Median(),
pg.StdDev()
)
)
print(df_agg)
2. 高級分組
除了多重聚合的方式外,Pandasagg還提供了高級的分組方法,能夠更加靈活和精確地指定需要進行的分組。
下面的示例代碼中,我們使用分別指定groupby函數的參數和函數,來完成高級分組操作,並生成一個數據框。
# 構造數據
data = {'group_1': ['A', 'A', 'B', 'B', 'C', 'C'],
'group_2': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
'value': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# 使用高級分組
df_agg = df.groupby([df['group_1'], pd.Categorical(df['group_2'], categories=['X', 'Y'])]).agg(
pg.MultiAgg(
pg.Count(),
pg.ArgMax('value')
)
)
print(df_agg)
3. 輸出結果
在Pandasagg中,可以使用to_frame()函數將聚合結果轉化為數據框的形式輸出。
# 構造數據
data = {'group': ['A', 'B', 'C', 'A', 'B', 'C'], 'value': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# 使用pandasagg進行多重聚合
df_agg = df.groupby('group').agg(
pg.MultiAgg(
pg.Count(),
pg.ArgMax('value'),
pg.ArgMin('value'),
pg.Percentile('value'),
pg.Mean(),
pg.Median(),
pg.StdDev()
)
)
# 輸出聚合結果
output = df_agg.to_frame()
print(output)
三、Pandasagg的優點
與其他的Python數據分析工具類庫相比,Pandasagg的聚合性能和效率相對較好。其多重聚合的操作方式能夠更簡潔地完成數據分析任務,並且在處理大數據集的情況下也相對快速。
此外,Pandasagg強大的可拓展性,也為數據分析人員提供了眾多自定義擴展選項。因此,隨著Python數據分析的應用範圍不斷擴大,Pandasagg的使用也會得到更廣泛的推廣。
原創文章,作者:ZPBX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/138173.html