Python+Pandas實現(xiàn)數(shù)據(jù)透視表
大家好,我是丁小杰。
對于數(shù)據(jù)透視表,相信對于 Excel 比較熟悉的小伙伴都知道如何使用它,并了解它的強大之處,而在pandas
中要實現(xiàn)數(shù)據(jù)透視就要用到pivot_table
了。
導入示例數(shù)據(jù)
首先導入演示的數(shù)據(jù)集。
import?pandas?as?pd df?=?pd.read_csv('銷售目標.csv') df.head()
參數(shù)說明
主要參數(shù):
data
:待操作的 DataFramevalues
:被聚合操作的列,可選項index
:行分組鍵,作為結(jié)果 DataFrame 的行索引columns
:列分組鍵,作為結(jié)果 DataFrame 的列索引aggfunc
:聚合函數(shù)/函數(shù)列表,默認 numpy.mean 這里要注意如果 aggfunc 中存在函數(shù)列表,則返回的 DataFrame 中會顯示函數(shù)名稱fill_value
:默認 None,可設定缺省值dropna
:默認 True,如果列的所有值都是 NaN,將被刪除;False 則保留margins
:默認 False,設置為 True 可以添加行/列的總計margins_name
:默認顯示 'ALL',當margins = True
時,可以設定 margins 行/列的名稱
常用操作
使用pivot_table
時必須要指定index
,因為計算時要根據(jù)index
進行聚合。
pd.pivot_table(df.head(20), ???????????????index='訂單日期', ???????????????aggfunc=np.sum)
通過指定value
來選擇被聚合的列。
pd.pivot_table(df.head(20), ???????????????values='銷售目標', ???????????????index='訂單日期', ???????????????aggfunc=np.sum)
當只指定index
進行聚合時,其實用groupby
可以實現(xiàn)同樣的效果。
df.head(20).groupby(['訂單日期'])['銷售目標'].sum().reset_index()
添加columns
參數(shù),對列分組。
pd.pivot_table(df.head(10), ???????????????values='銷售目標', ???????????????index=['訂單日期',?'類別'], ???????????????columns='細分', ???????????????aggfunc=np.sum)
對于上面結(jié)果中的空值,使用fill_value
參數(shù)統(tǒng)一填充為0
pd.pivot_table(df.head(10), ???????????????values='銷售目標', ???????????????index=['訂單日期',?'類別'], ???????????????columns=['細分'], ???????????????aggfunc=np.sum, ???????????????fill_value=0)
現(xiàn)在按年份來統(tǒng)計銷售數(shù)據(jù),注意此時的aggfunc
參數(shù),當參數(shù)值包含列表時,在結(jié)果DataFrame
中就會顯示函數(shù)名稱。
pd.pivot_table(df, ???????????????values='銷售目標', ???????????????index=['年份',?'類別'], ???????????????columns='細分', ???????????????aggfunc=[np.sum])
如果需要添加合計列,只需指定margins=True
即可,同時根據(jù)需要指定合計名稱。
pd.pivot_table(df, ???????????????values='銷售目標', ???????????????index=['年份',?'類別'], ???????????????columns='細分', ???????????????aggfunc=np.sum, ???????????????margins=True, ??????????????margins_name='合計')
當然與groupby
類似,對于計算函數(shù)我們可以同時指定多種方式。
pd.pivot_table(df, ???????????????values='銷售目標', ???????????????index=['年份',?'類別'], ???????????????columns=['細分'], ???????????????aggfunc={'銷售目標':?[max,?np.sum]}, ???????????????fill_value=0)
到此這篇關于Python+Pandas實現(xiàn)數(shù)據(jù)透視表的文章就介紹到這了,更多相關Python 數(shù)據(jù)透視表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
torch 中各種圖像格式轉(zhuǎn)換的實現(xiàn)方法
這篇文章主要介紹了torch 中各種圖像格式轉(zhuǎn)換的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12Python 新建文件夾與復制文件夾內(nèi)所有內(nèi)容的方法
今天小編就為大家分享一篇Python 新建文件夾與復制文件夾內(nèi)所有內(nèi)容的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10詳解python3 + Scrapy爬蟲學習之創(chuàng)建項目
這篇文章主要介紹了python3 Scrapy爬蟲創(chuàng)建項目,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04PyCharm添加Anaconda中的虛擬環(huán)境Python解釋器出現(xiàn)Conda?executable?is?not
這篇文章主要給大家介紹了關于PyCharm添加Anaconda中的虛擬環(huán)境Python解釋器出現(xiàn)Conda?executable?is?not?found錯誤的解決辦法,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2023-02-02