您好,登錄后才能下訂單哦!
本篇文章為大家展示了Python中怎么利用pandas實現一個篩選控件,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
透視表的靈活性
當我們拿到一份數據時,經常需要不斷改變條件對數據進行觀測,如下一份某水果的銷售情況:
一行數據表示,某天(date)在某地區(qū)(region)此水果的某個品種(type)的價格(AveragePrice)和銷量(Total Volume)
希望看到不同年份總銷量前10的地區(qū),以及各個品種的銷量信息
由于需求需要匯總,Excel 中使用透視表是最好的方式:
過程不多說,這里值得注意的是,我們能通過最上方選擇不同的年份,下方數據表能馬上顯示此年份總銷量 top 10 的地區(qū)數據
用 Python 能快速簡單做出這種效果嗎?
我們將使用 ipywidgets 庫,此工具最適合用在 Jupyter Notebook 上,假設你已經安裝好 Jupyter Notebook ,打開你的 cmd,執(zhí)行以下命令:
1pip install ipywidgets && jupyter nbextension enable --py widgetsnbextension
直到看到如下信息:
1Enabling notebook extension jupyter-js-widgets/extension...
2 - Validating: ok
現在重啟你的 Jupyter Notebook 即可
注意:
如果你不知道怎么安裝 Anaconda 或 Jupyter Notebook 的使用,可以查看我以前的文章
widgets 庫用于完成各種小組件,他能生成網頁內容,不僅僅在 Jupyter Notebook 使用,但本文只講解在 Jupyter Notebook 上的使用
本文需要導入的庫是這些:
首先使用 pandas 得到透視表的結果,這非常簡單:
行3,4:為了突出可以變化的東西,這里定義2個變量
通過修改2個變量,我們能得到對應的結果數據
但是這遠遠不夠,想看不同年份或不同 Top N 的結果,都需要修改代碼。
我們稍微加工一下這個過程,定義一個函數:
現在好一些,但是改變條件仍然需要修改代碼
簡單加上一個裝飾器即可:
行1:@wg.interact 是一個裝飾器,打到我們的自定義函數上
其中每個命名參數為自定義函數上的參數
x_df=wg.fixed(df) ,表示 x_df 參數使用變量 df,并且這個參數是不需要改變的。因此界面上就沒有這個變量的選項
year=[2015,2016,2017,2018] ,年份有4種選擇,此時界面上看到一個 year 的下拉框供用戶點選
topn=range(1,11) ,topn 有10種選擇,界面同樣可以看到下拉框
現在,我們只需要簡單從下拉框選擇條件值,下方的結果會馬上刷新,這與 Excel 中的透視表一模一樣
不過,大家都知道 Excel 中還能根據透視表制作透視圖,這里我們同樣可以制作出動態(tài)變化的圖表:
行13,14:使用 display 方法,輸出內容即可
上述內容就是Python中怎么利用pandas實現一個篩選控件,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。