Pandas實現(xiàn)(pivot_table函數(shù))數(shù)據(jù)透視表方式
更新時間:2024年09月10日 16:26:21 作者:呀~吼
pandas的pivot_table()函數(shù)非常強大,主要用于創(chuàng)建數(shù)據(jù)透視表,重要參數(shù)包括index、values、columns和aggfunc,index用于設置行索引,類似于SQL中的group by,values用于進行聚合計算的數(shù)據(jù)選擇,columns參數(shù)可設置列層次,非必須
Pandas (pivot_table函數(shù))數(shù)據(jù)透視表
使用pandas中的pivot_table()實現(xiàn)數(shù)據(jù)透視表。
語法格式如下:
pd.pivot_table(data,values=None,index=None, columns=None,aggfunc='mean',fill_value=None,margins=False,dropna=True, margins_name='All')
pd.pivot_table()有四個最重要的參數(shù)index、values、columns、aggfunc。
四個最重要參數(shù)解析
index:
- 相當于SQL里的group by用于分組的字段,相當于行索引。
- index也是層次字段,要通過透視表獲取什么信息就按照相應的順序設置字段。
pd.pivot_table(data,index=['列名1','列名2'])
values:
- 相當于SQL里對列進行聚合計算
- 對需要的計算數(shù)據(jù)進行篩選
pd.pivot_table(data,index=['列名1','列名2'],values=['計算列名1','計算列名2','計算列名3'])
columns:
- columns類似index可以設置列層次字段
- 它不是一個必要參數(shù),作為一種分割數(shù)據(jù)的可選方式
pd.pivot_table(data,index=['列名1','列名2'], values=['計算列名1','計算列名2','計算列名3'],columns=['列名3'])
aggfunc:
- aggfunc參數(shù)可以設置對數(shù)據(jù)聚合時進行的函數(shù)操作。
- 對于aggfunc參數(shù),操作的是values后面的值,而不是columns后面的值。
- 分別對values參數(shù)中的每一列都進行求和與求平均值。
pd.pivot_table(data,index=['列名1','列名2'], values=['計算列名1','計算列名2','計算列名3'],aggfunc=[np.sum,np.mean])
fill_value:當數(shù)據(jù)為空時,填充的指定值。fill_value=0
注意:
- aggfunc也可以使用dict類型,這樣可以指定values中每一列的聚合函數(shù)。
- 如果dict中的內(nèi)容與values不匹配時,以dict中為準。
table=pd.pivot_table(data,index=['列名1','列名2'],columns=['列名3'], values=['計算列名1','計算列名2','計算列名3'], aggfunc={'計算列名1':np.mean,'計算列名2':[min, max, np.mean]},fill_value=0)
結(jié)果就是’計算列名2’求min,max和mean,'計算列名1’求mean,而’計算列名3’沒有顯示。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
對python numpy.array插入一行或一列的方法詳解
今天小編就為大家分享一篇對python numpy.array插入一行或一列的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01python實現(xiàn)網(wǎng)上購物系統(tǒng)
這篇文章主要為大家詳細介紹了python實現(xiàn)網(wǎng)上購物系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06