適配 Pandas,兩行代碼實(shí)現(xiàn)數(shù)據(jù)初探
探索性數(shù)據(jù)分析,即 Exploratory Data Analysis,簡稱為 EDA,指拿到數(shù)據(jù)以后,快速了解數(shù)據(jù),對數(shù)據(jù)進(jìn)行基礎(chǔ)的統(tǒng)計(jì)分析,比如,分析數(shù)據(jù)類型、缺失值、數(shù)據(jù)分布狀態(tài)、相關(guān)性、繪制可視化圖等操作。
以前進(jìn)行 EDA 操作雖然不是特別麻煩,但也不是特別簡單,今天推薦的這個工具,配合 Pandas 只需要兩行代碼就可以實(shí)現(xiàn)超級全面的數(shù)據(jù)分析內(nèi)容,可謂是數(shù)據(jù)分析師的福音。
這個 Python 數(shù)據(jù)分析支持庫就是新近推出的 Sweetviz,Github 上的項(xiàng)目代碼庫為: https://github.com/fbdesignpro/sweetviz,該支持庫的作者叫 Francois Bertrand,用他的話說,Sweetviz 搭配 pandas 的 Dataframe,只需兩行代碼就可以快速生成 HTML 交互式數(shù)據(jù)探索報告。
Francois 在 Github 上提供了 Sweetviz 的實(shí)例,該實(shí)例使用的是大家耳熟能詳?shù)奶┨鼓峥藬?shù)據(jù)集,生成的 HTML 報告他也放在網(wǎng)上了,大家可以進(jìn)去自己戳戳點(diǎn)點(diǎn),基本上就可以了解:
http://cooltiming.com/SWEETVIZ_REPORT.html

通過這個用例,可以看出 Sweetviz 的一些主要功能:
目標(biāo)分析,比如泰坦尼克數(shù)據(jù)集中幸存者與其它要素之間的關(guān)系
可視化,這個不多說,上圖就可以看到
相關(guān)性分析,比如皮爾森相關(guān)系數(shù)、不確定性系數(shù)、數(shù)據(jù)相關(guān)性等基礎(chǔ)相關(guān)性分析
數(shù)據(jù)類型推斷,可以自動檢測數(shù)字、類別、文本特征
生成數(shù)據(jù)集摘要信息,唯一值、缺失值、重復(fù)數(shù)據(jù)、出現(xiàn)頻率最高的值等
基礎(chǔ)數(shù)據(jù)分析,如最大值、最小值、數(shù)據(jù)范圍、四分位數(shù)、均值、眾數(shù)、標(biāo)準(zhǔn)偏差、數(shù)據(jù)匯總、中位數(shù)絕對偏差、變異系數(shù)、數(shù)據(jù)峰度、數(shù)據(jù)偏度等
支持 Jupyter Notebook
支持報告縮放與垂直布局
安裝
官方說的是支持 Python 3.6+ 和 Pandas 0.25.3+,呆鳥用的是 python 3.8.8 和 Pandas 1.2.3
pip install sweetviz
下載數(shù)據(jù)
呆鳥已經(jīng)把數(shù)據(jù)給大家下載好了,回復(fù)文章底部的口令,下載數(shù)據(jù)集與sweetviz.ipynb 文件
打開 jupyter notebook 或 jupyter lab, 或其它 VSCode、Pycharm 等你喜歡的 IDE,呆鳥這里用的是 jupyter lab 3.0
創(chuàng)建
sweetviz_test文件夾,新建一個 jupyter notebook 文件,比如呆鳥這里叫sweetviz.ipynb把
test.csv與train.csv兩個文件復(fù)制到sweetviz_test中的data文件夾中(新建的)打開
sweetviz.ipynb,開始寫代碼,很簡單
import sweetviz
import pandas as pd
train = pd.read_csv("data/train.csv")
test = pd.read_csv("data/test.csv")
my_report = sweetviz.compare([train, "Train"], [test, "Test"], "Survived")
my_report.show_html("Report.html")
完成了,此時在 sweetviz_test 文件夾中就生成了 Report.html 文件,就是上圖中的 sweetviz 數(shù)據(jù)報告,雙擊打開就可以查看了。

Sweetviz 還支持在 jupyter notebook 里內(nèi)置顯示報告,使用如下命令:
my_report.show_notebook( w=None,
h=None,
scale=None,
layout='widescreen',
filepath=None)

遇到的問題
在運(yùn)行 my_report = sweetviz.compare([train, "Train"], [test, "Test"], "Survived") 時顯示 ImportError: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
此時安裝 ipywidgets 就可以了,安裝命令為 pip install ipywidgets
搞定收工,如果你喜歡這個 Python 快捷數(shù)據(jù)分析工具,就自己安裝下載數(shù)據(jù)試試吧。
關(guān)注呆鳥,關(guān)注 Python 大咖談,一起學(xué)習(xí) Python 和數(shù)據(jù)分析。

下載數(shù)據(jù)集的口令為 sweetviz_test,大家只要在 Python 大咖談的公號后臺輸入這個口令就可以看到下載鏈接了。
