此系列文章收錄在公眾號(hào)中:數(shù)據(jù)大宇宙 > 數(shù)據(jù)處理 > E-pd
轉(zhuǎn)發(fā)本文并私信我"python",即可獲得Python資料以及更多系列文章(持續(xù)更新的)
經(jīng)常聽別人說 Python 在數(shù)據(jù)領(lǐng)域有多厲害,結(jié)果學(xué)了很長(zhǎng)時(shí)間,連數(shù)據(jù)處理都麻煩得要死。后來才發(fā)現(xiàn),原來不是 Python 數(shù)據(jù)處理厲害,而是他有數(shù)據(jù)分析神器—— pandas
前言本系列介紹了許多類比 Excel 的 pandas 操作,確實(shí)他們都能很好對(duì)應(yīng)起來,這是因?yàn)?pandas 本身是以行列表作為核心概念,比如說 Excel 中的透視表,在 pandas 中就有一一對(duì)應(yīng),本系列已經(jīng)講解過。
Excel 的操作便利性在于只需要鼠標(biāo)點(diǎn)擊就可以完成操作,這對(duì)于查看數(shù)據(jù)是非常方便。
難道我們用 Python 就不能做到嗎?本文將結(jié)合一些工具,使得你的 pandas 處理過程變得靈活動(dòng)態(tài)。
透視表的靈活性當(dāng)我們拿到一份數(shù)據(jù)時(shí),經(jīng)常需要不斷改變條件對(duì)數(shù)據(jù)進(jìn)行觀測(cè),如下一份某水果的銷售情況:
一行數(shù)據(jù)表示,某天(date)在某地區(qū)(region)此水果的某個(gè)品種(type)的價(jià)格(AveragePrice)和銷量(Total Volume)希望看到不同年份總銷量前10的地區(qū),以及各個(gè)品種的銷量信息由于需求需要匯總,Excel 中使用透視表是最好的方式:
過程不多說,這里值得注意的是,我們能通過最上方選擇不同的年份,下方數(shù)據(jù)表能馬上顯示此年份總銷量 top 10 的地區(qū)數(shù)據(jù)用 Python 能快速簡(jiǎn)單做出這種效果嗎?
小組件我們將使用 ipywidgets 庫,此工具最適合用在 Jupyter Notebook 上,假設(shè)你已經(jīng)安裝好 Jupyter Notebook ,打開你的 cmd,執(zhí)行以下命令:
pip install ipywidgets && jupyter nbextension enable --py widgetsnbextension直到看到如下信息:
Enabling notebook extension jupyter-js-widgets/extension... - Validating: ok現(xiàn)在重啟你的 Jupyter Notebook 即可
注意:
如果你不知道怎么安裝 Anaconda 或 Jupyter Notebook 的使用,可以查看我以前的文章widgets 庫用于完成各種小組件,他能生成網(wǎng)頁內(nèi)容,不僅僅在 Jupyter Notebook 使用,但本文只講解在 Jupyter Notebook 上的使用修飾你的 pandas 處理本文需要導(dǎo)入的庫是這些:
首先使用 pandas 得到透視表的結(jié)果,這非常簡(jiǎn)單:
行3,4:為了突出可以變化的東西,這里定義2個(gè)變量通過修改2個(gè)變量,我們能得到對(duì)應(yīng)的結(jié)果數(shù)據(jù)寫不出來這些 pandas 代碼?看看我的 pandas 專欄,入門到高級(jí)到數(shù)據(jù)分析案例應(yīng)用:
但是這遠(yuǎn)遠(yuǎn)不夠,想看不同年份或不同 Top N 的結(jié)果,都需要修改代碼。
我們稍微加工一下這個(gè)過程,定義一個(gè)函數(shù):
現(xiàn)在好一些,但是改變條件仍然需要修改代碼簡(jiǎn)單加上一個(gè)裝飾器即可:
行1:@wg.interact 是一個(gè)裝飾器,打到我們的自定義函數(shù)上其中每個(gè)命名參數(shù)為自定義函數(shù)上的參數(shù)x_df=wg.fixed(df) ,表示 x_df 參數(shù)使用變量 df,并且這個(gè)參數(shù)是不需要改變的。因此界面上就沒有這個(gè)變量的選項(xiàng)year=[2015,2016,2017,2018] ,年份有4種選擇,此時(shí)界面上看到一個(gè) year 的下拉框供用戶點(diǎn)選topn=range(1,11) ,topn 有10種選擇,界面同樣可以看到下拉框現(xiàn)在,我們只需要簡(jiǎn)單從下拉框選擇條件值,下方的結(jié)果會(huì)馬上刷新,這與 Excel 中的透視表一模一樣不過,大家都知道 Excel 中還能根據(jù)透視表制作透視圖,這里我們同樣可以制作出動(dòng)態(tài)變化的圖表
行13,14:使用 display 方法,輸出內(nèi)容即可總結(jié)接下來,我將會(huì)講解關(guān)于小組件的應(yīng)用系列,他在 Python 數(shù)據(jù)探索和數(shù)據(jù)可視化方面,能做出很多有趣的事情,敬請(qǐng)關(guān)注!
需要源碼的小伙伴請(qǐng)轉(zhuǎn)發(fā)本文并私信我"python"
如果希望從零開始學(xué)習(xí) pandas ,那么可以看看我的 pandas 專欄。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由信途科技轉(zhuǎn)載于網(wǎng)絡(luò),如有侵權(quán)聯(lián)系站長(zhǎng)刪除。
轉(zhuǎn)載請(qǐng)注明出處http://www.quickersubmitter.com/xintu/14190.html