太香了,牆裂推薦3個Python資料分析EDA神器!

Python資料科學發表於2020-11-23
作者:東哥起飛

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

image

使用Pandas Profiling生成了一個快速的報告,具有很好的視覺化效果。報告結果直接顯示在notebook中,而不是在單獨的檔案中開啟。

image

總共提供了六個部分:概述、變數、互動、相關性,缺失值和樣本。

Pandas profiling的變數部分是完整的,它為每個變數都生成了詳細的報告。

image

從上圖可以看出,僅一個變數就有太多資訊,比如可以獲得描述性資訊和分位數資訊。

互動

image

互動部分我們可以獲取兩個數值變數之間的散點圖。

相關性

可以獲得兩個變數之間的關係資訊。

image

缺失值

可以獲取每個變數的缺失值計數資訊。

image

樣本

可以顯示了資料集中的樣本行,用於瞭解資料。

image

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()

image

從上圖可以看到,Sweetviz報告生成的內容與之前的Pandas Profiling類似,但具有不同的UI。

image

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()

image

不需要敲太多的程式碼就可以讓我們快速分析這些變數,這在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)

image

在此GUI中,可以做很多事情,比如過濾、統計資訊、在變數之間建立圖表、以及重塑資料。這些操作可以根據需求拖動選項卡來完成。

image

比如像下面這個統計資訊。

image

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

image

還可以通過建立新的資料透視表或者融合資料集來進行重塑。

然後,處理好的資料集可以直接匯出成csv。

image

pandasGUI的一些優勢在於:

  • 可以拖拽
  • 快速過濾資料
  • 快速繪圖

缺點在於:

  • 沒有完整的統計資訊
  • 不能生成報告

4. 結論

Pandas ProfilingSweetvizPandasGUI都很不錯,旨在簡化我們的EDA處理。在不同的工作流程中,每個都有自己的優勢和適用性,三個工具具體優勢如下:

  • Pandas Profiling 適用於快速生成單個變數的分析。
  • Sweetviz 適用於資料集之間和目標變數之間的分析。
  • PandasGUI適用於具有手動拖放功能的深度分析。
參考:
https://github.com/adamerose/...
https://github.com/pandas-pro...
https://github.com/fbdesignpr...
https://towardsdatascience.com/

原創不易,覺得不錯點個贊。

歡迎關注我的個人公眾號:Python資料科學

資料科學學習網站:datadeepin

相關文章