pandas中使用數(shù)據(jù)透視表的示例代碼
什么是透視表?
經(jīng)常做報表的小伙伴對數(shù)據(jù)透視表應(yīng)該不陌生,在excel中利用數(shù)據(jù)透視表可以快速地進(jìn)行分類匯總,自由組合字段快速計算,而這些只需要拖拉拽就可以實現(xiàn)。
維基百科對透視表(pivot table)解釋是:
A pivot table is a table of statistics that summarizes the data of a more extensive table.
透視表是一種匯總了更廣泛表數(shù)據(jù)的統(tǒng)計信息表。
典型的數(shù)據(jù)格式是扁平的,只包含行和列,不方便總結(jié)信息:

而數(shù)據(jù)透視表可以快速抽取有用的信息:

pandas也有透視表?
pandas作為編程領(lǐng)域最強(qiáng)大的數(shù)據(jù)分析工具之一,自然也有透視表的功能。
在pandas中,透視表操作由pivot_table()函數(shù)實現(xiàn),不要小看只是一個函數(shù),但卻可以玩轉(zhuǎn)數(shù)據(jù)表,解決大麻煩。
pivot_table使用方法:
pandas.pivot_table(*data*, *values=None*, *index=None*, *columns=None*, *aggfunc='mean'*, *fill_value=None*, *margins=False*, *dropna=True*, *margins_name='All'*, *observed=False*)
參數(shù)解釋:
- data:dataframe格式數(shù)據(jù)
- values:需要匯總計算的列,可多選
- index:行分組鍵,一般是用于分組的列名或其他分組鍵,作為結(jié)果DataFrame的行索引
- columns:列分組鍵,一般是用于分組的列名或其他分組鍵,作為結(jié)果DataFrame的列索引
- aggfunc:聚合函數(shù)或函數(shù)列表,默認(rèn)為平均值
- fill_value:設(shè)定缺失替換值
- margins:是否添加行列的總計
- dropna:默認(rèn)為True,如果列的所有值都是NaN,將不作為計算列,F(xiàn)alse時,被保留
- margins_name:匯總行列的名稱,默認(rèn)為All
- observed:是否顯示觀測值
注意,在所有參數(shù)中,values、index、columns最為關(guān)鍵,它們分別對應(yīng)excel透視表中的值、行、列:

參數(shù)aggfunc對應(yīng)excel透視表中的值匯總方式,但比excel的聚合方式更豐富:

如何使用pivot_table?
下面拿數(shù)據(jù)練一練,示例數(shù)據(jù)表如下:

該表為用戶訂單數(shù)據(jù),有訂單日期、商品類別、價格、利潤等維度。
首先導(dǎo)入數(shù)據(jù):
data = pd.read_excel("E:\\訂單數(shù)據(jù).xlsx")
data.head()
接下來使用透視表做分析:
- 計算每個州銷售總額和利潤總額
result1 = pd.pivot_table(data,index='洲' , values = ['銷售額','利潤'] , aggfunc = np.sum) result1.head()

- 計算每個洲每個城市每單平均銷售量
result2 = pd.pivot_table(data,index=['洲','城市'],aggfunc=np.mean,values=['數(shù)量']) result2.head(20)

- 計算每個洲的總銷量和每單平均銷量
result3 = pd.pivot_table(data,index=['洲'],aggfunc=[np.sum,np.mean],values=['數(shù)量']) result3.head()

- 看每個城市(行)每類商品(列)的總銷售量,并匯總計算
result4 = pd.pivot_table(data,index=['城市'],columns=['商品類別'],aggfunc=[np.sum],values=['數(shù)量'],margins=True) result4.head()

總結(jié)
本文介紹了pandas pivot_table函數(shù)的使用,其透視表功能基本和excel類似,但pandas的聚合方式更加靈活和多元,處理大數(shù)據(jù)也更快速,大家有興趣可探索更高級的用法。
到此這篇關(guān)于pandas中使用數(shù)據(jù)透視表的示例代碼的文章就介紹到這了,更多相關(guān)pandas 數(shù)據(jù)透視表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Pandas實現(xiàn)(pivot_table函數(shù))數(shù)據(jù)透視表方式
- python Pandas高級功能之?dāng)?shù)據(jù)透視表和字符串操作
- Pandas數(shù)據(jù)分析之pandas數(shù)據(jù)透視表和交叉表
- Python+Pandas實現(xiàn)數(shù)據(jù)透視表
- python 用pandas實現(xiàn)數(shù)據(jù)透視表功能
- pandas實現(xiàn)excel中的數(shù)據(jù)透視表和Vlookup函數(shù)功能代碼
- 使用Pandas實現(xiàn)Excel中的數(shù)據(jù)透視表的項目實踐
相關(guān)文章
python 解決pycharm運(yùn)行py文件只有unittest選項的問題
這篇文章主要介紹了python 解決pycharm運(yùn)行py文件只有unittest選項的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
python sklearn包——混淆矩陣、分類報告等自動生成方式
今天小編就為大家分享一篇python sklearn包——混淆矩陣、分類報告等自動生成方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
python調(diào)用webservice接口的實現(xiàn)
這篇文章主要介紹了python調(diào)用webservice接口的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Python調(diào)用兩個機(jī)器人聊天的實戰(zhàn)
本文主要介紹了Python調(diào)用兩個機(jī)器人聊天,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
詳細(xì)介紹pandas的DataFrame的append方法使用
這篇文章主要介紹了詳細(xì)介紹pandas的DataFrame的append方法使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python33 urllib2使用方法細(xì)節(jié)講解
Python 標(biāo)準(zhǔn)庫中有很多實用的工具類,這里總結(jié)一些 urllib2 的使用細(xì)節(jié):Proxy 的設(shè)置、Timeout 設(shè)置、在 HTTP Request 中加入特定的 、Cookie、使用 HTTP 的 PUT 和 DELETE 方法2013-12-12
selenium + python 獲取table數(shù)據(jù)的示例講解
今天小編就為大家分享一篇selenium + python 獲取table數(shù)據(jù)的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10

