4款Pandas自動(dòng)數(shù)據(jù)分析神器
我們做數(shù)據(jù)分析,在第一次拿到數(shù)據(jù)集的時(shí)候,一般會(huì)用統(tǒng)計(jì)學(xué)或可視化方法來(lái)了解原始數(shù)據(jù)。
老表周三福利-文末贈(zèng)書(shū)三本
了解列數(shù)、行數(shù)、取值分布、缺失值、列之間的相關(guān)關(guān)系等等,這個(gè)過(guò)程叫做?EDA(Exploratory Data Analysis,探索性數(shù)據(jù)分析)。
如果你現(xiàn)在做EDA還在用pandas一行行寫(xiě)代碼,那么福音來(lái)了!
目前已經(jīng)有很多EDA工具可以自動(dòng)產(chǎn)出基礎(chǔ)的統(tǒng)計(jì)數(shù)據(jù)和圖表,能為我們節(jié)省大量時(shí)間。
本文會(huì)對(duì)比介紹 4 款常用的EDA工具,最后一款絕了,完全是拋棄代碼的節(jié)奏。
正式介紹這些工具之前,先來(lái)加載數(shù)據(jù)集
import?numpy?as?np
import?pandas?as?pd
iris?=?pd.read_csv('iris.csv')
iris

iris是下面用到的數(shù)據(jù)集,是一個(gè)150行 * 4列的 DataFrame。
1. PandasGUI
PandasGUI提供數(shù)據(jù)預(yù)覽、篩選、統(tǒng)計(jì)、多種圖表展示以及數(shù)據(jù)轉(zhuǎn)換。
#?安裝
#?pip?install?pandasgui
from?pandasgui?import?show
show(iris)

PandasGUI更側(cè)重?cái)?shù)據(jù)展示,提供了10多種圖表,通過(guò)可視的方式配置。
但數(shù)據(jù)統(tǒng)計(jì)做的比較簡(jiǎn)單,沒(méi)有提供缺失值、相關(guān)系數(shù)等指標(biāo),數(shù)據(jù)轉(zhuǎn)換部分也只開(kāi)放了一小部分接口。
2. Pandas Profiling
Pandas Profiling?提供了整體數(shù)據(jù)概況、每列的詳情、列之間的關(guān)圖、列之間的相關(guān)系數(shù)。
#?安裝:
#?pip?install?-U?pandas-profiling
#?jupyter?nbextension?enable?--py?widgetsnbextension
from?pandas_profiling?import?ProfileReport
profile?=?ProfileReport(iris,?title='iris?Pandas?Profiling?Report',?explorative=True)
profile

每列的詳情包括:缺失值統(tǒng)計(jì)、去重計(jì)數(shù)、最值、平均值等統(tǒng)計(jì)指標(biāo)和取值分布的柱狀圖。
列之間的相關(guān)系數(shù)支持Spearman、Pearson、Kendall 和 Phik 4 種相關(guān)系數(shù)算法。
與?PandasGUI?相反,Pandas Profiling沒(méi)有豐富的圖表,但提供了非常多的統(tǒng)計(jì)指標(biāo)以及相關(guān)系數(shù)。
3. Sweetviz
Sweetviz與Pandas Profiling類似,提供了每列詳細(xì)的統(tǒng)計(jì)指標(biāo)、取值分布、缺失值統(tǒng)計(jì)以及列之間的相關(guān)系數(shù)。
#?安裝
#?pip?install?sweetviz
import?sweetviz?as?sv
sv_report?=?sv.analyze(iris)
sv_report.show_html()

Sweetviz還有有一個(gè)非常好的特性是支持不同數(shù)據(jù)集的對(duì)比,如:訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集的對(duì)比。

藍(lán)色和橙色代表不同的數(shù)據(jù)集,通過(guò)對(duì)比可以清晰發(fā)現(xiàn)數(shù)據(jù)集之前的差異。
4. dtale
最后重磅介紹dtale,它不僅提供豐富圖表展示數(shù)據(jù),還提供了很多交互式的接口,對(duì)數(shù)據(jù)進(jìn)行操作、轉(zhuǎn)換。

dtale的功能主要分為三部分:數(shù)據(jù)操作、數(shù)據(jù)可視化、高亮顯示。
4.1 數(shù)據(jù)操作(Actions)
dtale將pandas的函數(shù)包裝成可視化接口,可以讓我們通過(guò)圖形界面方式來(lái)操作數(shù)據(jù)。
#?pip?install?dtale
import?dtale
d?=?dtale.show(iris)
d.open_browser()

右半部分圖是左邊圖的中文翻譯,用的是 Chrome 自動(dòng)翻譯,有些不是很準(zhǔn)確。
舉一個(gè)數(shù)據(jù)操作的例子。

上圖是Actions菜單中Summarize Data的功能,它提供了對(duì)數(shù)據(jù)集匯總操作的接口。
上圖我們選擇按照species列分組,計(jì)算sepal_width列的平均值,同時(shí)可以看到左下角dtale已經(jīng)自動(dòng)為該操作生成了pandas代碼。
4.2 數(shù)據(jù)可視化(Visualize)
提供比較豐富的圖表,對(duì)每列數(shù)據(jù)概況、重復(fù)行、缺失值、相關(guān)系數(shù)進(jìn)行統(tǒng)計(jì)和展示。

舉一個(gè)數(shù)據(jù)可視化的例子。

上圖是Visualize菜單中Describe的功能,它可以統(tǒng)計(jì)每列的最值、均值、標(biāo)準(zhǔn)差等指標(biāo),并提供圖表展示。
右側(cè)的Code Export可以查看生成這些數(shù)據(jù)的代碼。
4.3 高亮顯示(Highlight)
對(duì)缺失值、異常值做高亮顯示,方便我們快速定位到異常的數(shù)據(jù)。


上圖顯示了將sepal_width字段的異常值。
dtale非常強(qiáng)大,功能也非常多,大家可以多多探索、挖掘。
最后,簡(jiǎn)單總結(jié)一下。如果探索的數(shù)據(jù)集側(cè)重?cái)?shù)據(jù)展示,可以選PandasGUI;如果只是簡(jiǎn)單了解基本統(tǒng)計(jì)指標(biāo),可以選擇Pandas Profiling和Sweetviz;如果需要做深度的數(shù)據(jù)探索,那就選擇dtale。
如果本文對(duì)你有用就點(diǎn)個(gè)?在看?鼓勵(lì)一下吧。
老表每周三贈(zèng)書(shū)
點(diǎn)擊下方卡片直接購(gòu)買學(xué)習(xí)
贈(zèng)書(shū)規(guī)則:給本文點(diǎn)贊+本周想對(duì)自己說(shuō)的一句話或者隨意留言,點(diǎn)擊下方卡片,關(guān)注老表小號(hào)「簡(jiǎn)說(shuō)編程」,回復(fù):周三福利,既可以參與贈(zèng)書(shū)活動(dòng)送2本,另外我將從留言中隨機(jī)選一位,贈(zèng)書(shū)1本(一定要留言吶,留言滿100后,將無(wú)法精選)。
關(guān)注后,回復(fù):周三福利
【??注】同一讀者同一月內(nèi)最多只能獲得一本贈(zèng)書(shū);必須在收到贈(zèng)書(shū)后學(xué)習(xí)完圖書(shū)內(nèi)容/投稿學(xué)習(xí)筆記一篇后才能獲得下一本贈(zèng)書(shū)。
如何找到我:
