像RStudio一樣查看Python的Dataframe —— Qgrid
因為我是從 R 跳到 Python 的使用者,R 搭配 RStudio 有很多好用的資料處理操作,其中之一就是可以直接視覺化瀏覽 dataframe,操作 filter 等。其實 Python 也是可以做到這一點的,這就是本篇要介紹的主角——**Qgrid**。
Qgrid
Qgrid 是一個可以用互動的方式來操作 Dataframe 的一個套件。目前主要優點有以下二點:
- 直接用點選的方式做到篩選、排序、甚至是更改 cell 的值。
- 做 EDA 時可以看到整個 Dataframe 的全貌,而不是用 … 的方式來顯示,且讀取速度很快。
有興趣的話讓我們開始吧!
安裝 Qgrid
基本上依據官方文檔就可以順利安裝了,基本上不外乎就是 pip 及 conda 兩種管道。
1 | # pip 安裝方式 |
官網還有提及需安裝 Jupyterlab ,我試過使用 Jupyter notebook 也是可以運行的,這裡是否要安裝 Jupyterlab 就依自己習慣即可。
直接調整 Dataframe
一開始,我們先建立所需要的 Dataframe 資料來做測試,為了之後測試效能,我們把數量調大一點。
1 | # 載入所需套件 |
可以看到基本上在 Jupyter notebook,只要不特地去設定 pandas 的 display 值,過多的資料都會用 … 帶過。接下來我們想用 Qgrid 來接管這個 Datafram,我們只要下以下語法就好。
1 | qgrid_widget = qgrid.show_grid(df, show_toolbar=True) |
我們可以直接在 Dataframe 上排序、篩選(數值、類別、布林)資料。
甚至可以直接更改 Dataframe 的值。
除此之外,瀏覽資料的速度也是相當迅速的。
如果想要擷取這些更動過的資料,可以下以下指令。
1 | qgrid_widget.get_changed_df() |
擷取的資料保留了排序、篩選及我們更動後的資料,這對想直接動手調整資料的人來說相當方便。
後記
Qgrid 還在不斷的更新及維護,舉例來說,最近更新的版本,可以在修改資料後直接反應結果在圖形上。官方舉例的文件中用數據畫了迴歸線及資料點的圖形,在更改 Qgrid 的資料時,圖形會即時更動。其實語法也不會很難,但因我們在這討論此套件如何幫助我們在 EDA 流程中更好掌握資料,有興趣的人就自己再看一下官方文檔吧!