Python+Pandas實(shí)現(xiàn)數(shù)據(jù)透視表
大家好,我是丁小杰。
對(duì)于數(shù)據(jù)透視表,相信對(duì)于 Excel 比較熟悉的小伙伴都知道如何使用它,并了解它的強(qiáng)大之處,而在pandas
中要實(shí)現(xiàn)數(shù)據(jù)透視就要用到pivot_table
了。
導(dǎo)入示例數(shù)據(jù)
首先導(dǎo)入演示的數(shù)據(jù)集。
import?pandas?as?pd df?=?pd.read_csv('銷售目標(biāo).csv') df.head()
參數(shù)說(shuō)明
主要參數(shù):
data
:待操作的 DataFramevalues
:被聚合操作的列,可選項(xiàng)index
:行分組鍵,作為結(jié)果 DataFrame 的行索引columns
:列分組鍵,作為結(jié)果 DataFrame 的列索引aggfunc
:聚合函數(shù)/函數(shù)列表,默認(rèn) numpy.mean 這里要注意如果 aggfunc 中存在函數(shù)列表,則返回的 DataFrame 中會(huì)顯示函數(shù)名稱fill_value
:默認(rèn) None,可設(shè)定缺省值dropna
:默認(rèn) True,如果列的所有值都是 NaN,將被刪除;False 則保留margins
:默認(rèn) False,設(shè)置為 True 可以添加行/列的總計(jì)margins_name
:默認(rèn)顯示 'ALL',當(dāng)margins = True
時(shí),可以設(shè)定 margins 行/列的名稱
常用操作
使用pivot_table
時(shí)必須要指定index
,因?yàn)橛?jì)算時(shí)要根據(jù)index
進(jìn)行聚合。
pd.pivot_table(df.head(20), ???????????????index='訂單日期', ???????????????aggfunc=np.sum)
通過(guò)指定value
來(lái)選擇被聚合的列。
pd.pivot_table(df.head(20), ???????????????values='銷售目標(biāo)', ???????????????index='訂單日期', ???????????????aggfunc=np.sum)
當(dāng)只指定index
進(jìn)行聚合時(shí),其實(shí)用groupby
可以實(shí)現(xiàn)同樣的效果。
df.head(20).groupby(['訂單日期'])['銷售目標(biāo)'].sum().reset_index()
添加columns
參數(shù),對(duì)列分組。
pd.pivot_table(df.head(10), ???????????????values='銷售目標(biāo)', ???????????????index=['訂單日期',?'類別'], ???????????????columns='細(xì)分', ???????????????aggfunc=np.sum)
對(duì)于上面結(jié)果中的空值,使用fill_value
參數(shù)統(tǒng)一填充為0
pd.pivot_table(df.head(10), ???????????????values='銷售目標(biāo)', ???????????????index=['訂單日期',?'類別'], ???????????????columns=['細(xì)分'], ???????????????aggfunc=np.sum, ???????????????fill_value=0)
現(xiàn)在按年份來(lái)統(tǒng)計(jì)銷售數(shù)據(jù),注意此時(shí)的aggfunc
參數(shù),當(dāng)參數(shù)值包含列表時(shí),在結(jié)果DataFrame
中就會(huì)顯示函數(shù)名稱。
pd.pivot_table(df, ???????????????values='銷售目標(biāo)', ???????????????index=['年份',?'類別'], ???????????????columns='細(xì)分', ???????????????aggfunc=[np.sum])
如果需要添加合計(jì)列,只需指定margins=True
即可,同時(shí)根據(jù)需要指定合計(jì)名稱。
pd.pivot_table(df, ???????????????values='銷售目標(biāo)', ???????????????index=['年份',?'類別'], ???????????????columns='細(xì)分', ???????????????aggfunc=np.sum, ???????????????margins=True, ??????????????margins_name='合計(jì)')
當(dāng)然與groupby
類似,對(duì)于計(jì)算函數(shù)我們可以同時(shí)指定多種方式。
pd.pivot_table(df, ???????????????values='銷售目標(biāo)', ???????????????index=['年份',?'類別'], ???????????????columns=['細(xì)分'], ???????????????aggfunc={'銷售目標(biāo)':?[max,?np.sum]}, ???????????????fill_value=0)
到此這篇關(guān)于Python+Pandas實(shí)現(xiàn)數(shù)據(jù)透視表的文章就介紹到這了,更多相關(guān)Python 數(shù)據(jù)透視表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- pandas中使用數(shù)據(jù)透視表的示例代碼
- Pandas實(shí)現(xiàn)(pivot_table函數(shù))數(shù)據(jù)透視表方式
- python Pandas高級(jí)功能之?dāng)?shù)據(jù)透視表和字符串操作
- Pandas數(shù)據(jù)分析之pandas數(shù)據(jù)透視表和交叉表
- python 用pandas實(shí)現(xiàn)數(shù)據(jù)透視表功能
- pandas實(shí)現(xiàn)excel中的數(shù)據(jù)透視表和Vlookup函數(shù)功能代碼
- 使用Pandas實(shí)現(xiàn)Excel中的數(shù)據(jù)透視表的項(xiàng)目實(shí)踐
相關(guān)文章
torch 中各種圖像格式轉(zhuǎn)換的實(shí)現(xiàn)方法
這篇文章主要介紹了torch 中各種圖像格式轉(zhuǎn)換的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Python 新建文件夾與復(fù)制文件夾內(nèi)所有內(nèi)容的方法
今天小編就為大家分享一篇Python 新建文件夾與復(fù)制文件夾內(nèi)所有內(nèi)容的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10詳解python3 + Scrapy爬蟲(chóng)學(xué)習(xí)之創(chuàng)建項(xiàng)目
這篇文章主要介紹了python3 Scrapy爬蟲(chóng)創(chuàng)建項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04淺談pyqt5中信號(hào)與槽的認(rèn)識(shí)
這篇文章主要介紹了淺談pyqt5中信號(hào)與槽的認(rèn)識(shí),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02PyCharm添加Anaconda中的虛擬環(huán)境Python解釋器出現(xiàn)Conda?executable?is?not
這篇文章主要給大家介紹了關(guān)于PyCharm添加Anaconda中的虛擬環(huán)境Python解釋器出現(xiàn)Conda?executable?is?not?found錯(cuò)誤的解決辦法,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02總結(jié)Python變量的相關(guān)知識(shí)
今天給大家?guī)?lái)的是關(guān)于Python基礎(chǔ)的相關(guān)知識(shí),文章圍繞著Python變量的相關(guān)知識(shí)展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06異步任務(wù)隊(duì)列Celery在Django中的使用方法
對(duì)于網(wǎng)站來(lái)說(shuō),給用戶一個(gè)較好的體驗(yàn)是很重要的事情,其中最重要的指標(biāo)就是網(wǎng)站的瀏覽速度。因此服務(wù)端要從各個(gè)方面對(duì)網(wǎng)站性能進(jìn)行優(yōu)化,這篇文章主要介紹了異步任務(wù)隊(duì)列Celery在Django中的使用方法,感興趣的小伙伴們可以參考一下2018-06-06