1行代碼實(shí)現(xiàn)Python數(shù)據(jù)分析:圖表美觀清晰,自帶對(duì)比功能丨開源
本文經(jīng)AI新媒體量子位(公眾號(hào)ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
你是否也在朋友圈看過這樣的小廣告:

「你要悄悄學(xué)Python,然后驚艷所有人。」
現(xiàn)在,GitHub上一位博主告訴你:不用學(xué),用sweetviz就行。
這是一個(gè)基于Python編寫的數(shù)據(jù)分析軟件,只要掌握3種函數(shù)用法,一行Python代碼就能實(shí)現(xiàn)數(shù)據(jù)集可視化、分析與比較。
我們以Titanic數(shù)據(jù)集為例,輸入一行代碼:

一個(gè)1080p的清晰網(wǎng)頁(yè)界面就出現(xiàn)在了眼前。

不僅根據(jù)性別、年齡等不同欄目縱向分析數(shù)據(jù),每個(gè)欄目下還有眾數(shù)、最大值、最小值等橫向?qū)Ρ取?/p>
所有輸入的數(shù)值、文本信息都會(huì)被自動(dòng)檢測(cè),并進(jìn)行數(shù)據(jù)分析、可視化和對(duì)比,最后幫你進(jìn)行數(shù)據(jù)總結(jié)。
在這樣的數(shù)據(jù)分析下,結(jié)果一目了然。

△ Titanic數(shù)據(jù)集部分功能細(xì)節(jié)展示
這樣的效果,是基于3個(gè)主函數(shù)實(shí)現(xiàn)的。
3種函數(shù)用法
analyze()丨數(shù)據(jù)分析

數(shù)據(jù)分析函數(shù)中,有4個(gè)參數(shù)source,target_feat,feat_cfg和pairwise_analysis需要被設(shè)置。
source:以pandas中的DataFrame數(shù)據(jù)結(jié)構(gòu)、或是DataFrame中的某一類字符串作為分析對(duì)象。
target_feat:需要被標(biāo)記為目標(biāo)對(duì)象的字符串。
feat_cfg:需要被跳過、或是需要被強(qiáng)制轉(zhuǎn)換為某種數(shù)據(jù)類型的特征。
pairwise_analysis:相關(guān)性和其他類型的數(shù)據(jù)關(guān)聯(lián)可能需要花費(fèi)較長(zhǎng)時(shí)間。如果超過了某個(gè)閾值,就需要設(shè)置這個(gè)參數(shù)為on或者off,以判斷是否需要分析數(shù)據(jù)相關(guān)性。

△ 數(shù)據(jù)相關(guān)性分析效果,可能需要花費(fèi)一定時(shí)間
compare()丨兩個(gè)數(shù)據(jù)集比較

如果想要對(duì)兩個(gè)數(shù)據(jù)集進(jìn)行對(duì)比分析,就使用這個(gè)比較函數(shù)。
例子中的my_dataframe和test_df是兩個(gè)數(shù)據(jù)集,分別被命名為訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)。
除了這個(gè)被插入的數(shù)據(jù)集,剩余的參數(shù)與analyze中的一致。
compare_intra()丨數(shù)據(jù)集欄目比較

想要對(duì)數(shù)據(jù)集中某個(gè)欄目下的參數(shù)進(jìn)行分析,就采用這個(gè)函數(shù)進(jìn)行。
例如,如果需要比較“性別”欄目下的“男性”和“女性”,就可以采用這個(gè)函數(shù)。
理解這幾種函數(shù)的變量后,一行代碼就能實(shí)現(xiàn)Python數(shù)據(jù)分析。
使用指南
sweetviz支持Python 3.6+和Pandas0.25.3+環(huán)境,配置好環(huán)境后,使用萬能的pip下載安裝包:

但有一個(gè)條件需要注意:sweetviz需要用到基礎(chǔ)「os」模塊。所以,如果你在使用類似于Google Colab的自定義環(huán)境,可能會(huì)無法使用sweetviz,目前開發(fā)者也在探索解決方案。
下載好后,使用import快速導(dǎo)入sweetviz,就可以開始使用了~

sweetviz使用的原理是,使用一行代碼,生成一個(gè)數(shù)據(jù)報(bào)告的對(duì)象(其中,my_dataframe是pandas中的DataFrame,一種表格型數(shù)據(jù)結(jié)構(gòu)):

在這里,analyze函數(shù)可以被替換為compare或compare_intra函數(shù),使用方法在上面已經(jīng)給出,全看你需要什么類型的數(shù)據(jù)報(bào)告了。
最后,用show一鍵輸出。(結(jié)果會(huì)以SWEETVIZ_REPORT.html網(wǎng)頁(yè)形式展示)

由于在這個(gè)過程中,實(shí)際上真正需要編寫的只有第二行的生成對(duì)象代碼,可以說是名副其實(shí)的1行代碼生成數(shù)據(jù)分析。
展示界面也非常簡(jiǎn)潔,只要鼠標(biāo)停留在感興趣的欄目上,右側(cè)就會(huì)自動(dòng)顯示出數(shù)據(jù)分析的圖表和報(bào)告。

感興趣的小伙伴,快戳下方的傳送門用起來吧~
傳送門:
https://github.com/fbdesignpro/sweetviz