【Python】安利 3 個(gè) pandas 數(shù)據(jù)探索分析神器!
1. Pandas_Profiling
這個(gè)屬于三個(gè)中最輕便、簡單的了。它可以快速生成報(bào)告,一覽變量概況。首先,我們需要安裝該軟件包。
#?安裝Jupyter擴(kuò)展widget?
jupyter?nbextension?enable?--py?widgetsnbextension
#?或者通過conda安裝
conda?env?create?-n?pandas-profiling
conda?activate?pandas-profiling
conda?install?-c?conda-forge?pandas-profiling
#?或者直接從源地址安裝
pip?install?https://github.com/pandas-profiling/pandas-profiling/archive/master.zip
安裝成功后即可導(dǎo)入數(shù)據(jù)直接生成報(bào)告了。
import?pandas?as?pd
import?seaborn?as?sns
mpg?=?sns.load_dataset('mpg')
mpg.head()
from?pandas_profiling?import?ProfileReport
profile?=?ProfileReport(mpg,?title='MPG?Pandas?Profiling?Report',?explorative?=?True)
profile

使用Pandas Profiling生成了一個(gè)快速的報(bào)告,具有很好的可視化效果。報(bào)告結(jié)果直接顯示在notebook中,而不是在單獨(dú)的文件中打開。

總共提供了六個(gè)部分:概述、變量、交互、相關(guān)性,缺失值和樣本。
Pandas profiling的變量部分是完整的,它為每個(gè)變量都生成了詳細(xì)的報(bào)告。

從上圖可以看出,僅一個(gè)變量就有太多信息,比如可以獲得描述性信息和分位數(shù)信息。
交互

交互部分我們可以獲取兩個(gè)數(shù)值變量之間的散點(diǎn)圖。
相關(guān)性
可以獲得兩個(gè)變量之間的關(guān)系信息。

缺失值
可以獲取每個(gè)變量的缺失值計(jì)數(shù)信息。

樣本
可以顯示了數(shù)據(jù)集中的樣本行,用于了解數(shù)據(jù)。

2. Sweetviz
Sweetviz是另一個(gè)Python的開源代碼包,僅用一行代碼即可生成漂亮的EDA報(bào)告。與Pandas Profiling的區(qū)別在于它輸出的是一個(gè)完全獨(dú)立的HTML應(yīng)用程序。
使用pip安裝該軟件包
pip?install?sweetviz
安裝完成后,我們可以使用Sweetviz生成報(bào)告,下面嘗試一下。
import?sweetviz?as?sv
#?可以選擇目標(biāo)特征
my_report?=?sv.analyze(mpg,?target_feat?='mpg')
my_report.show_html()

從上圖可以看到,Sweetviz報(bào)告生成的內(nèi)容與之前的Pandas Profiling類似,但具有不同的UI。

Sweetviz不僅可以查看單變量的分布、統(tǒng)計(jì)特性,它還可以設(shè)置目標(biāo)標(biāo)量,將變量和目標(biāo)變量進(jìn)行關(guān)聯(lián)分析。如上面報(bào)告最右側(cè),它獲得了所有現(xiàn)有變量的數(shù)值關(guān)聯(lián)和類別關(guān)聯(lián)的相關(guān)性信息。
Sweetviz的優(yōu)勢不在于單個(gè)數(shù)據(jù)集上的EDA報(bào)告,而在于數(shù)據(jù)集的比較。
可以通過兩種方式比較數(shù)據(jù)集:將其拆分(例如訓(xùn)練和測試數(shù)據(jù)集),或者使用一些過濾器對總體進(jìn)行細(xì)分。
比如下面這個(gè)例子,有USA和NOT-USA兩個(gè)數(shù)據(jù)集。
#?設(shè)置需要分析的變量
my_report?=?sv.compare_intra(mpg,mpg?[“?origin”]?==“?usa”,[“?USA”,“?NOT-USA”],target_feat?='mpg')
my_report.show_html()

不需要敲太多的代碼就可以讓我們快速分析這些變量,這在EDA環(huán)節(jié)會(huì)減少很多工作量,而把時(shí)間留給變量的分析和篩選上。
Sweetviz的一些優(yōu)勢在于:
分析有關(guān)目標(biāo)值的數(shù)據(jù)集的能力
兩個(gè)數(shù)據(jù)集之間的比較能力
但也有一些缺點(diǎn):
變量之間沒有可視化,例如散點(diǎn)圖
報(bào)告在另一個(gè)標(biāo)簽中打開
個(gè)人是比較喜歡Sweetviz的。
3. pandasGUI
PandasGUI與前面的兩個(gè)不同,PandasGUI不會(huì)生成報(bào)告,而是生成一個(gè)GUI(圖形用戶界面)的數(shù)據(jù)框,我們可以使用它來更詳細(xì)地分析我們的Dataframe。
首先,安裝PandasGUI。
# pip安裝
pip?install?pandasgui
# 或者通過源下載
pip?install?git+https://github.com/adamerose/pandasgui.git
然后,運(yùn)行幾行代碼試一下。
from?pandasgui?import?show
# 部署GUI的數(shù)據(jù)集
gui?=?show(mpg)

在此GUI中,可以做很多事情,比如過濾、統(tǒng)計(jì)信息、在變量之間創(chuàng)建圖表、以及重塑數(shù)據(jù)。這些操作可以根據(jù)需求拖動(dòng)選項(xiàng)卡來完成。

比如像下面這個(gè)統(tǒng)計(jì)信息。

最牛X的就是繪圖器功能了。用它進(jìn)行拖拽操作簡直和excel沒有啥區(qū)別了,操作難度和門檻幾乎為零。

還可以通過創(chuàng)建新的數(shù)據(jù)透視表或者融合數(shù)據(jù)集來進(jìn)行重塑。
然后,處理好的數(shù)據(jù)集可以直接導(dǎo)出成csv。

pandasGUI的一些優(yōu)勢在于:
可以拖拽
快速過濾數(shù)據(jù)
快速繪圖
缺點(diǎn)在于:
沒有完整的統(tǒng)計(jì)信息
不能生成報(bào)告
4. 結(jié)論
Pandas Profiling、Sweetviz和PandasGUI都很不錯(cuò),旨在簡化我們的EDA處理。在不同的工作流程中,每個(gè)都有自己的優(yōu)勢和適用性,三個(gè)工具具體優(yōu)勢如下:
Pandas Profiling 適用于快速生成單個(gè)變量的分析。
Sweetviz 適用于數(shù)據(jù)集之間和目標(biāo)變量之間的分析。
PandasGUI適用于具有手動(dòng)拖放功能的深度分析。
原創(chuàng)不易,來個(gè)三連支持下。
往期精彩回顧 本站qq群851320808,加入微信群請掃碼:
