几款强大的 Pandas 数据探索工具,推荐收藏使用
對于 Python 數(shù)據(jù)分析領(lǐng)域,Pandas 絕對是中堅(jiān)力量,那么圍繞著這個工具,又衍生出了很多輔助工具,今天我們就一起來看看輔助 Pandas 來進(jìn)行數(shù)據(jù)探索的幾種工具
首先我們先來看看我們的測試數(shù)據(jù)集
import?pandasdf?=?pd.read_excel("2018_Sales_Total_v2.xlsx")df對于上面的數(shù)據(jù),如果使用 Excel,我們可以非常方便的進(jìn)行簡單的過濾、搜索等操作
那么在不借助 Excel 的情況,我們有哪些好用的工具呢
JavaScript tools
最簡單的方法是使用 JavaScript 庫向數(shù)據(jù)中的 DataFrame 視圖添加一些交互屬性
Qgrid
首先我們來看看 Qgrid,這是一個 Jupyter notebook 組件,可以為我們的 DataFrame 添加交互屬性
import?qgrid import?pandasdf?=?pd.read_excel("2018_Sales_Total_v2.xlsx")widget?=?qgrid.show_grid(df) widget可以看到,Qgrid 的過濾功能還是很不錯的,基本上接近于 Excel 了,但是它也有一些缺點(diǎn),Qgrid 不能進(jìn)行可視化,也不能使用 Pandas 表達(dá)式來過濾和選擇數(shù)據(jù),所以說,Qgrid 只適用于簡單的數(shù)據(jù)操作和檢查
PivottableJs
PivottableJs 工具并不是真正用于查看 DataFrame 數(shù)據(jù)的,但我們可以把它當(dāng)做一個非常有用的匯總數(shù)據(jù)工具來使用
它通過一個 JavaScript 庫的數(shù)據(jù)透視表來進(jìn)行交互式數(shù)據(jù)透視和匯總
from?pivottablejs?import?pivot_uipivot_ui(df)我們通過單擊和拖動來匯總每個客戶購買的數(shù)量
當(dāng)然,除了基本的求和函數(shù),我們還可以做一些可視化和統(tǒng)計(jì)分析
該工具對于過濾原始 DataFrame 沒有太大的用處,但對于透視和匯總數(shù)據(jù)方面是非常強(qiáng)大,我們可以在構(gòu)建數(shù)據(jù)透視表后過濾數(shù)據(jù),以此來充分發(fā)揮這個工具的作用
Data Analysis Applications
接下來我們介紹比較成熟的 GUI 工具,通常使用 Web 后端(如 Flask)或基于 Qt 的單獨(dú)應(yīng)用程序。
這些應(yīng)用程序的復(fù)雜性和功能各不相同,從簡單的表格視圖和繪圖功能到強(qiáng)大的統(tǒng)計(jì)分析。這些工具的獨(dú)特之處在于它們與 Pandas 緊密集成,因此我們可以使用 Pandas 代碼來過濾數(shù)據(jù)并與這些應(yīng)用程序交互
PandasGUI
我們首先來看的第一個應(yīng)用程序是 PandasGUI,這個應(yīng)用程序的獨(dú)特之處在于它是一個用 Qt 構(gòu)建的獨(dú)立應(yīng)用程序,可以直接從 Jupyter notebook 調(diào)用
from?pandasgui?import?showshow(df)比如上圖,使用 Pandas 查詢語法過濾數(shù)據(jù)以顯示一位客戶且購買數(shù)量 > 15 的數(shù)據(jù)
PandasGUI 與 Plotly 集成使得我們可以方便的構(gòu)建可視化
PandasGUI 的一項(xiàng)非常棒的功能是過濾器對所有選項(xiàng)卡中的 DataFrame 都有效,我們可以使用此功能在繪制或轉(zhuǎn)換數(shù)據(jù)時嘗試不同的數(shù)據(jù)視圖
PandasGUI 的另一個功能是我們可以通過旋轉(zhuǎn)或融合數(shù)據(jù)來重塑數(shù)據(jù),以下是 SKU 單位銷售額的摘要
PandasGUI 真的是一個令人印象深刻的工具!
Tabloo
Tabloo 使用 Flask 作為后端為 DataFrames 數(shù)據(jù)提供簡單的可視化工具以及類似于 PandasGUI 的繪圖功能
import?tablootabloo.show(df)Dtale
Dtale 還是比較復(fù)雜的,功能也更加強(qiáng)大。Dtale 的架構(gòu)類似于 Tabloo,因?yàn)樗瑯邮褂?Flask 后端,但也包括一個強(qiáng)大的 React 前端
import?dtaledtale.show(df)Dtale 不僅僅是一個 DataFrame 查看器,還是一個非常強(qiáng)大的統(tǒng)計(jì)工具集
我們還可以導(dǎo)出代碼,這是一個非常強(qiáng)大的功能,將 Excel + Python 解決方案與普通 Excel 區(qū)分開來
下面的例子就可以從上面的可視化圖表中導(dǎo)出代碼
import?numpy?as?np import?pandas?as?pdif?isinstance(df,?(pd.DatetimeIndex,?pd.MultiIndex)):df?=?df.to_frame(index=False)#?remove?any?pre-existing?indices?for?ease?of?use?in?the?D-Tale?code,?but?this?is?not?required df?=?df.reset_index().drop('index',?axis=1,?errors='ignore') df.columns?=?[str(c)?for?c?in?df.columns]??#?update?columns?to?strings?in?case?they?are?numberss?=?df[~pd.isnull(df['{col}'])][['{col}']] chart,?labels?=?np.histogram(s,?bins=20) import?scipy.stats?as?stskde?=?sts.gaussian_kde(s['unit?price']) kde_data?=?kde.pdf(np.linspace(labels.min(),?labels.max())) #?main?statistics stats?=?df['unit?price'].describe().to_frame().TDtale 還可以對數(shù)據(jù)進(jìn)行格式化,在下面的示例中,我們將貨幣和日期列格式化為更易于閱讀的形式
Excel
最后來介紹一些與 Excel 相結(jié)合的工具
PyXLL
PyXLL 是一個付費(fèi)產(chǎn)品,不過我們可以免費(fèi)試用 30 天來一睹它的風(fēng)采
它真正的強(qiáng)大之處在于,我們可以將 Jupyter Notebook 與 Excel 共同使用,并使用 jupyter 魔術(shù)命令在 Notebook 和 Excel 之間交換數(shù)據(jù)
xlwings
xlwings 和 PyXLL 類似,也是有商業(yè)公司支持的。但是,有一個社區(qū)版是開源的,我們可以使用開源版本
雖然 xlwings 不直接與 Jupyter Notebook 集成,但我們可以使用 DataFrame 實(shí)時填充 Excel 電子表格并使用 Excel 進(jìn)行分析
import?pandas?as?pd import?xlwings?as?xwurl?=? df?=?pd.read_excel("2018_Sales_Total_v2.xlsx")#?Create?a?new?workbook?and?add?the?DataFrame?to?Sheet1 xw.view(df)此代碼將打開一個新的 Excel 實(shí)例并將 df 放入單元格 A1
好了,今天介紹的 Pandas 數(shù)據(jù)探索工具就是這么多,喜歡就點(diǎn)個贊吧
各位伙伴們好,詹帥本帥搭建了一個個人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請移步小程序體驗(yàn)一下哦!(歡迎提建議)推薦閱讀牛逼!Python常用數(shù)據(jù)類型的基本操作(長文系列第①篇) 牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長文系列第②篇)牛逼!Python函數(shù)和文件操作(長文系列第③篇)牛逼!Python錯誤、異常和模塊(長文系列第④篇)總結(jié)
以上是生活随笔為你收集整理的几款强大的 Pandas 数据探索工具,推荐收藏使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5 款可替代 du 命令的工具!
- 下一篇: 可视化图表种类还不清楚?快来看看这两个宝