今天看到pandas的聚合函數agg,比較陌生,平時的工作中處理數據的時候使用的也比較少,爲了加深印象,總結一下使用的方法,其實還是挺好用的。
DataFrame.agg(func,axis = 0,* args,** kwargs )
func : 函數,函數名稱,函數列表,字典{‘行名/列名’,‘函數名’}
使用指定軸上的一個或多個操作進行聚合。
agg是一個聚合函數,聚合函數操作始終是在軸(默認是列軸,也可設置行軸)上執行,不同於 numpy聚合函數(np.sum() //求和;np.prod() //所有元素相乘;np.mean() //平均值;np.std() //標準差;np.var() //方差;np.median() //中數;np.power() //冪運算;np.sqrt() //開方;np.min() //最小值;np.max() //最大值;np.argmin() //最小值的下標;np.argmax() //最大值的下標;np.inf //無窮大;np.exp(10) //以e爲底的指數;np.log(10) //對數)
下面示例展示agg具體用法:
定義一個列表值:
import pandasas pd
df=pd.DataFrame([[1,2,3,4],
[11,22,33,44],
[111,222,333,444],
[1111,2222,3333,4444]
],
columns=['col1','col2','col3','col4'],)#列名
print(df)
在行上聚合這些函數
df_arows=df.agg(['max','min','mean'])
col1 col2 col3 col4
max 1111.0 2222.0 3333.0 4444.0
min 1.0 2.0 3.0 4.0
mean 308.5 617.0 925.5 1234.0
每列不同的聚合
df_columns=df.agg({'col1':['sum','min'],'col2':['max','min'],'col3':['sum','min']})
col1 col2 col3
max NaN 2222.0 NaN
min 1.0 2.0 3 .0
sum 1234.0 NaN 3702.0
注:當某列沒有其他聚合函數時,則用NaN填充。
參考:https://www.jianshu.com/p/f37ac2a7b6dc