作者:東哥起飛
EDA是資料分析必須的過程,用來檢視變數統計特徵,可以此為基礎嘗試做特徵工程。東哥這次分享3個EDA
神器,其實之前每一個都分享過,這次把這三個工具包彙總到一起來介紹。
1. Pandas_Profiling
這個屬於三個中最輕便、簡單的了。它可以快速生成報告,一覽變數概況。首先,我們需要安裝該軟體包。
# 安裝Jupyter擴充套件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
安裝成功後即可匯入資料直接生成報告了。
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
生成了一個快速的報告,具有很好的視覺化效果。報告結果直接顯示在notebook中,而不是在單獨的檔案中開啟。
總共提供了六個部分:概述、變數、互動、相關性,缺失值和樣本。
Pandas profiling
的變數部分是完整的,它為每個變數都生成了詳細的報告。
從上圖可以看出,僅一個變數就有太多資訊,比如可以獲得描述性資訊和分位數資訊。
互動
互動部分我們可以獲取兩個數值變數之間的散點圖。
相關性
可以獲得兩個變數之間的關係資訊。
缺失值
可以獲取每個變數的缺失值計數資訊。
樣本
可以顯示了資料集中的樣本行,用於瞭解資料。
2. Sweetviz
Sweetviz
是另一個Python的開原始碼包,僅用一行程式碼即可生成漂亮的EDA報告。與Pandas Profiling
的區別在於它輸出的是一個完全獨立的HTML
應用程式。
使用pip安裝該軟體包
pip install sweetviz
安裝完成後,我們可以使用Sweetviz
生成報告,下面嘗試一下。
import sweetviz as sv
# 可以選擇目標特徵
my_report = sv.analyze(mpg, target_feat ='mpg')
my_report.show_html()
從上圖可以看到,Sweetviz
報告生成的內容與之前的Pandas Profiling
類似,但具有不同的UI。
Sweetviz
不僅可以檢視單變數的分佈、統計特性,它還可以設定目標標量,將變數和目標變數進行關聯分析。如上面報告最右側,它獲得了所有現有變數的數值關聯和類別關聯的相關性資訊。
Sweetviz
的優勢不在於單個資料集上的EDA報告,而在於資料集的比較。
可以通過兩種方式比較資料集:將其拆分(例如訓練和測試資料集),或者使用一些過濾器對總體進行細分。
比如下面這個例子,有USA和NOT-USA兩個資料集。
# 設定需要分析的變數
my_report = sv.compare_intra(mpg,mpg [“ origin”] ==“ usa”,[“ USA”,“ NOT-USA”],target_feat ='mpg')
my_report.show_html()
不需要敲太多的程式碼就可以讓我們快速分析這些變數,這在EDA
環節會減少很多工作量,而把時間留給變數的分析和篩選上。
Sweetviz
的一些優勢在於:
- 分析有關目標值的資料集的能力
- 兩個資料集之間的比較能力
但也有一些缺點:
- 變數之間沒有視覺化,例如散點圖
- 報告在另一個標籤中開啟
個人是比較喜歡Sweetviz
的。
3. pandasGUI
PandasGUI
與前面的兩個不同,PandasGUI
不會生成報告,而是生成一個GUI
(圖形使用者介面)的資料框,我們可以使用它來更詳細地分析我們的Dataframe
。
首先,安裝PandasGUI。
# pip安裝
pip install pandasgui
# 或者通過源下載
pip install git+https://github.com/adamerose/pandasgui.git
然後,執行幾行程式碼試一下。
from pandasgui import show
# 部署GUI的資料集
gui = show(mpg)
在此GUI
中,可以做很多事情,比如過濾、統計資訊、在變數之間建立圖表、以及重塑資料。這些操作可以根據需求拖動選項卡來完成。
比如像下面這個統計資訊。
最牛X的就是繪圖器功能了。用它進行拖拽操作簡直和excel沒有啥區別了,操作難度和門檻幾乎為零。
還可以通過建立新的資料透視表或者融合資料集來進行重塑。
然後,處理好的資料集可以直接匯出成csv。
pandasGUI
的一些優勢在於:
- 可以拖拽
- 快速過濾資料
- 快速繪圖
缺點在於:
- 沒有完整的統計資訊
- 不能生成報告
4. 結論
Pandas Profiling
、Sweetviz
和PandasGUI
都很不錯,旨在簡化我們的EDA處理。在不同的工作流程中,每個都有自己的優勢和適用性,三個工具具體優勢如下:
Pandas Profiling
適用於快速生成單個變數的分析。Sweetviz
適用於資料集之間和目標變數之間的分析。PandasGUI
適用於具有手動拖放功能的深度分析。
參考:
https://github.com/adamerose/...
https://github.com/pandas-pro...
https://github.com/fbdesignpr...
https://towardsdatascience.com/
原創不易,覺得不錯點個贊。
歡迎關注我的個人公眾號:Python資料科學
資料科學學習網站:datadeepin