隨著資料集規模和複雜度的提升,傳統的 EDA 方法變得越來越費時費力。Python 的自動化 EDA 工具因應而生,提供資料概覽、視覺化、特徵工程和異常偵測等功能,讓資料科學家能快速取得資料洞察。本文將介紹 PyGWalker、dataprep、autoviz 和 pandas_visual_analysis 等工具,說明如何運用這些工具簡化 EDA 流程,並提升資料分析效率。這些工具各有千秋,從 PyGWalker 的互動式視覺化介面到 dataprep 的資料準備和分析功能,再到 autoviz 的自動化視覺化和 pandas_visual_analysis 的多變數資料探索,都能協助資料科學家更有效率地探索和理解資料。

探索性資料分析(EDA)與自動化工具

在機器學習領域中,探索性資料分析(Exploratory Data Analysis, EDA)扮演著理解資料屬性、識別模式和推導洞察力的重要角色。傳統的EDA方法涉及一個迭代的過程,資料分析師使用視覺化方法、統計摘要和領域專業知識來仔細檢查資料集。然而,隨著資料集的大小和複雜性增加,傳統的EDA技術變得更加耗時和勞動密集。為瞭解決這個挑戰,自動化EDA工具已經出現,提供了一系列功能,包括資料概覽、視覺化能力、特徵工程選項和異常偵測功能。

這些工具使得資料科學家和分析師能夠快速從資料集中獲得洞察,而無需人工干預。自動化EDA函式庫滿足了對資料調查的需求,能夠以可擴充套件的方式管理複雜的資料集,並保持一致的分析結果。透過使用這些工具,資料科學家可以揭示隱藏的趨勢和簡化流程,從而提高效率。

結構

在本章中,我們將討論以下主題:

  1. 使用PyGWalker視覺函式庫與資料集
  2. 使用dataprep函式庫與資料集
  3. 使用autoviz函式庫與資料集
  4. 使用pandas_visual_analysis函式庫與資料集

目標

本章將介紹學習者使用Python函式庫進行資料視覺化和分析的多種方法,每種函式庫都有其獨特的貢獻,可以豐富資料探索體驗。從PyGWalker視覺函式庫開始,讀者將學習如何將其無縫地整合到資料集中,以建立視覺上吸引人的表示。接下來,dataprep函式庫將提供高效的資料準備和分析的見解。然後,學習者將深入研究autoviz和pandas_visual_analysis函式庫的功能,每個函式庫都提供不同的功能和視覺化方法,以增強對資料集的理解和解釋。

PyGWalker視覺函式庫

PyGWalker是Graphic Walker的Python繫結,它提供了一系列工具和功能來簡化整個資料探索和操作過程。它還提供了各種功能,以便使用者輕鬆地理解資料特徵、模式和關係。PyGWalker使得資料科學家能夠透過直觀的拖曳操作和自然語言查詢來輕鬆地視覺化、清理和註解資料。在Jupyter Notebook中,pandas dataframe可以使用PyGWalker轉換為類別似Tableau的UI。

# 安裝PyGWalker
!pip install pygwalker

# 匯入PyGWalker
import pygwalker

# 載入資料集
df = pd.read_csv('data.csv')

# 建立PyGWalker物件
gw = pygwalker.GraphicWalker(df)

# 顯示視覺化結果
gw.show()

內容解密:

  • !pip install pygwalker:安裝PyGWalker函式庫。
  • import pygwalker:匯入PyGWalker函式庫。
  • df = pd.read_csv('data.csv'):載入資料集。
  • gw = pygwalker.GraphicWalker(df):建立PyGWalker物件。
  • gw.show():顯示視覺化結果。

dataprep函式庫

dataprep函式庫是一個高效的資料準備和分析工具,它提供了各種功能來簡化資料探索和操作過程。它支援多種資料格式,包括CSV、Excel和JSON等。

# 安裝dataprep
!pip install dataprep

# 匯入dataprep
import dataprep

# 載入資料集
df = pd.read_csv('data.csv')

# 建立dataprep物件
dp = dataprep.DataPrep(df)

# 顯示視覺化結果
dp.show()

內容解密:

  • !pip install dataprep:安裝dataprep函式庫。
  • import dataprep:匯入dataprep函式庫。
  • df = pd.read_csv('data.csv'):載入資料集。
  • dp = dataprep.DataPrep(df):建立dataprep物件。
  • dp.show():顯示視覺化結果。

autoviz函式庫

autoviz函式庫是一個自動化視覺化工具,它提供了各種功能來簡化資料探索和操作過程。它支援多種視覺化方法,包括折線圖、柱狀圖和散點圖等。

# 安裝autoviz
!pip install autoviz

# 匯入autoviz
import autoviz

# 載入資料集
df = pd.read_csv('data.csv')

# 建立autoviz物件
av = autoviz.AutoViz(df)

# 顯示視覺化結果
av.show()

內容解密:

  • !pip install autoviz:安裝autoviz函式庫。
  • import autoviz:匯入autoviz函式庫。
  • df = pd.read_csv('data.csv'):載入資料集。
  • av = autoviz.AutoViz(df):建立autoviz物件。
  • av.show():顯示視覺化結果。

pandas_visual_analysis函式庫

pandas_visual_analysis函式庫是一個根據pandas的視覺化工具,它提供了各種功能來簡化資料探索和操作過程。它支援多種視覺化方法,包括折線圖、柱狀圖和散點圖等。

# 安裝pandas_visual_analysis
!pip install pandas_visual_analysis

# 匯入pandas_visual_analysis
import pandas_visual_analysis as pva

# 載入資料集
df = pd.read_csv('data.csv')

# 建立pandas_visual_analysis物件
pva_obj = pva.PandasVisualAnalysis(df)

# 顯示視覺化結果
pva_obj.show()

內容解密:

  • !pip install pandas_visual_analysis:安裝pandas_visual_analysis函式庫。
  • import pandas_visual_analysis as pva:匯入pandas_visual_analysis函式庫。
  • df = pd.read_csv('data.csv'):載入資料集。
  • pva_obj = pva.PandasVisualAnalysis(df):建立pandas_visual_analysis物件。
  • pva_obj.show():顯示視覺化結果。

安裝PyGWalker

PyGWalker是一個強大的資料探索工具,能夠幫助使用者快速地瞭解資料的結構和內容。要安裝PyGWalker,可以使用pip安裝命令:

pip install pygwalker

安裝完成後,可以在Jupyter Notebook中使用 %pip 命令來檢視PyGWalker的版本和其他詳細資訊。

使用PyGWalker

要使用PyGWalker,首先需要匯入必要的函式庫和資料。以下是使用PyGWalker的基本步驟:

import pygwalker
import pandas as pd

# 匯入tips.csv資料
mydf = pd.read_csv('tips.csv')

# 顯示前五行資料
print(mydf.head())

接下來,可以使用PyGWalker的 walk 方法來探索資料。這個方法可以生成多種統計摘要、視覺化表現和洞察力,以幫助使用者瞭解資料的特徵和趨勢。

mypg = pygwalker.PyGWalker()
mypg.walk(mydf, dark='light', hideDataSourceConfig=True, vegaTheme='vega')

這個方法可以生成一個包含兩個標籤頁的畫布:資料和視覺化。使用者可以在資料標籤頁中檢視和檢查資料,在視覺化標籤頁中建立不同的圖表。

功能解釋

PyGWalker提供了多種功能,以幫助使用者探索資料。以下是其中一些功能的解釋:

  • dark='light':設定顏色模式為淺色。
  • hideDataSourceConfig=True:隱藏資料來源組態的詳細資訊。
  • vegaTheme='vega':使用Vega主題建立互動式視覺化。

資料探索

PyGWalker可以自動地將數值欄位標記為度量,將類別欄位標記為維度。使用者可以在視覺化標籤頁中建立不同的圖表,例如條形圖、折線圖等。以下是建立一個簡單圖表的範例:

# 將total_bill欄位作為Y軸,day欄位作為X軸
mypg.walk(mydf, dark='light', hideDataSourceConfig=True, vegaTheme='vega')

使用者也可以根據自己的需求選擇不同的圖表型別。

資料匯出

PyGWalker提供了多種方式來匯出資料,包括PNG、SVG和BASE64格式。使用者可以根據自己的需求選擇適合的格式。

dataprep函式庫

dataprep是一個自動化的資料準備函式庫,能夠幫助使用者快速地準備和探索資料。要安裝dataprep,可以使用pip安裝命令:

pip install dataprep

安裝完成後,可以在Jupyter Notebook中使用 %pip 命令來檢視dataprep的版本和其他詳細資訊。

使用dataprep

要使用dataprep,首先需要匯入必要的函式庫和資料。以下是使用dataprep的基本步驟:

import dataprep
import pandas as pd

# 匯入tips.csv資料
mydf = pd.read_csv('tips.csv')

# 顯示前五行資料
print(mydf.head())

接下來,可以使用dataprep的 eda 方法來探索資料。這個方法可以生成多種統計摘要、視覺化表現和洞察力,以幫助使用者瞭解資料的特徵和趨勢。

eda = dataprep.eda(mydf)

這個方法可以生成一個包含多種統計摘要和視覺化表現的報告,以幫助使用者快速地瞭解資料的結構和內容。

內容解密:

以上程式碼展示瞭如何使用PyGWalker和dataprep函式庫來探索和準備資料。這些函式庫提供了多種功能,以幫助使用者快速地瞭解資料的結構和內容,並生成多種統計摘要、視覺化表現和洞察力。

圖表翻譯:

以下是使用PyGWalker生成的圖表範例:

  flowchart TD
    A[資料匯入] --> B[資料探索]
    B --> C[視覺化]
    C --> D[統計摘要]
    D --> E[洞察力]

這個圖表展示了使用PyGWalker的基本步驟,包括資料匯入、資料探索、視覺化、統計摘要和洞察力。

探索企鵝資料集

為了探索企鵝資料集,我們首先需要載入必要的函式庫,並載入名為 penguins.csv 的 CSV 檔案到 pandas 的 DataFrame 中。然後,我們可以使用 head() 方法快速檢視資料集的前五行,如圖 15.9 所示。

資料集概覽

載入資料集後,我們可以使用 create_report() 函式生成一個探索性資料分析(EDA)報告,並使用 show() 方法顯示報告。這個過程使我們能夠快速而有效地探索資料集,獲得統計摘要和視覺化以幫助理解資料。

功能解釋

執行 create_report() 函式後,dataprep 函式庫會顯示一個包含多個功能的報告,如圖 15.10 所示。讓我們逐一解釋每個功能,以便更好地理解資料。

概覽

概覽部分包含了資料集的統計資訊和見解,如圖 15.11 所示。這包括變數數量、資料行數、缺失值、重複行、記憶體大小等統計細節,以及對數值或類別變數的區分。

變數

點選變數選項後,會顯示每個特徵的詳細資訊,包括各種圖表和圖形,以提供對每個特徵的行為和與資料集內其他變數關係的更深入理解。例如,選擇任意特徵都可以觀察到不同的圖表和圖形,從而更好地理解其行為和關係。

數值變數:體重

讓我們以 body_mass_g 這個數值變數為例。點選 “Show Details” 按鈕後,會顯示四個標籤頁,其中包括統計摘要和描述性統計,如均值、中位數、變異數等,以及Kernel Density Estimation(KDE)視覺化等,見圖 15.16 和 15.17。

互動

互動選項允許我們探索兩個特徵之間的關係,一個特徵在X軸上,另一個在Y軸上,以散點圖的形式呈現,如圖 15.18 所示。我們可以根據需求選擇不同的X軸和Y軸變數,並檢視對應的散點圖。

相關性

最後,相關性選項提供了不同型別的相關性圖表,包括Pearson、Spearman和KendallTau相關性,見圖 15.19 和 15.20。這些圖表有助於我們識別和分析資料集中變數之間的相關性,從而更好地理解資料。

  flowchart TD
    A[載入資料集] --> B[生成EDA報告]
    B --> C[顯示報告]
    C --> D[探索資料集]
    D --> E[分析變數]
    E --> F[檢視互動和相關性]

圖表翻譯:

此流程圖展示了從載入資料集到生成和顯示EDA報告,然後進一步探索資料集、分析變數以及檢視互動和相關性的過程。每一步驟都對應著探索性資料分析中的重要環節,幫助我們更全面地理解資料。

資料視覺化與探索

資料視覺化是資料科學中的一個重要步驟,能夠幫助我們更好地理解資料的結構和特點。在這個過程中,我們可以使用各種視覺化工具和技術來呈現資料,例如條形圖、熱力圖、散點圖等。

缺失值檢測

檢測資料中的缺失值是資料探索的一個重要部分。缺失值可能會對資料分析和模型建立產生影響,因此我們需要找到有效的方法來檢測和處理缺失值。其中一種方法是使用條形圖和譜圖來視覺化缺失值,從而更好地理解缺失值的分佈和模式。

import matplotlib.pyplot as plt
import pandas as pd

# 載入資料
data = pd.read_csv('iris.csv')

# 檢測缺失值
missing_values = data.isnull().sum()

# 繪製條形圖
plt.bar(missing_values.index, missing_values.values)
plt.xlabel('欄位名稱')
plt.ylabel('缺失值數量')
plt.title('缺失值分佈')
plt.show()

AutoViz函式庫的使用

AutoViz是一個可以自動化資料視覺化的函式庫,它可以幫助我們快速地生成各種視覺化圖表,例如條形圖、熱力圖、散點圖等。使用AutoViz函式庫可以節省我們的時間和精力,同時也可以幫助我們更好地理解資料的結構和特點。

from autoviz.AutoViz_Class import AutoViz_Class

# 載入資料
data = pd.read_csv('iris.csv')

# 建立AutoViz例項
myav = AutoViz_Class()

# 生成視覺化報告
myav.AutoViz('iris.csv')

資料品質問題

資料品質問題是資料分析中的一個重要挑戰,包括缺失值、異常值、格式不一致等問題。AutoViz函式庫可以幫助我們自動地檢測和處理這些問題,從而提高資料的品質和可靠性。

from autoviz.AutoViz_Class import AutoViz_Class

# 載入資料
data = pd.read_csv('iris.csv')

# 建立AutoViz例項
myav = AutoViz_Class()

# 生成視覺化報告
myav.AutoViz('iris.csv')

# 檢測資料品質問題
dq_issues = myav.dq_issues

# 處理資料品質問題
myav.fix_dq_issues()

圖表翻譯:

上述程式碼使用AutoViz函式庫來生成視覺化報告和檢測資料品質問題。首先,我們載入資料並建立AutoViz例項,然後生成視覺化報告。接下來,我們檢測資料品質問題並使用fix_dq_issues方法來處理這些問題。這個過程可以幫助我們提高資料的品質和可靠性,同時也可以節省我們的時間和精力。

使用 Pandas Visual Analysis 進行資料視覺化

Pandas Visual Analysis 是一個 Python 套件,提供互動式資料視覺化工具,讓使用者可以在 Jupyter Notebook 中直接進行資料探索和分析。它可以生成多種圖表型別,並提供連結刷選(linked-brushing)功能,讓使用者可以輕鬆地探索複雜的多變數資料集。

安裝方法

可以使用 pip 安裝 Pandas Visual Analysis:

pip install pandas_visual_analysis

安裝完成後,可以在 Jupyter Notebook 中使用 %pip show pandas_visual_analysis 命令檢視套件版本和詳細資訊。

使用方法

首先,需要匯入 Pandas Visual Analysis 套件和所需的資料集。然後,可以建立一個 VisualAnalysis 物件,傳入資料集作為引數。這個物件代表了一個視覺化小工具,提供多種圖表選項和工具,讓使用者可以進行資料探索和分析。

例如,假設我們有一個名為 mpg.csv 的資料集,可以使用以下程式碼進行視覺化:

import pandas as pd
from pandas_visual_analysis import VisualAnalysis

# 載入資料集
mydf = pd.read_csv('mpg.csv')

# 建立 VisualAnalysis 物件
va = VisualAnalysis(mydf)

# 執行視覺化
va

這會顯示一個視覺化小工具,提供多種圖表選項和工具,讓使用者可以進行資料探索和分析。

功能說明

Pandas Visual Analysis 提供三種選擇型別:標準(Standard)、減法(Subtractive)和加法(Additive)。

  • 標準(Standard):提供了一個全面性的資料概覽,包括統計資料和圖表。
  • 減法(Subtractive):允許使用者選擇特定的欄位進行散點圖分析,並可以手動選擇和暫時移除某些資料點,以便分析其影響。
  • 加法(Additive):允許使用者新增先前移除的資料點,並重新視覺化圖表。

散點圖分析

在減法(Subtractive)模式中,可以選擇特定的欄位進行散點圖分析。例如,可以選擇 displacementhorsepower 欄位進行散點圖分析。然後,可以手動選擇和暫時移除某些資料點,以便分析其影響。

圖表顯示

Pandas Visual Analysis 提供多種圖表型別,包括散點圖、長條圖和直方圖等。例如,可以使用長條圖顯示 displacement 欄位的分佈情況。

從技術架構視角來看,自動化 EDA 工具的出現,大幅降低了資料探索的門檻,讓資料科學家能更快速地取得資料洞察。本文比較了 PyGWalker、dataprep、AutoViz 和 pandas_visual_analysis 等多種工具,分析了它們各自的優缺點及適用場景。例如 PyGWalker 提供類別似 Tableau 的互動式介面,適合快速探索資料關聯;dataprep 則側重於資料準備和品質分析,提供更全面的資料概覽;AutoViz 強調自動化視覺化,適合快速生成多種圖表;pandas_visual_analysis 則整合了 pandas 生態,方便進行互動式探索。然而,這些工具並非完美無缺,部分工具在處理大規模資料集時效能仍有待提升,且自動化流程的精細度仍不及人工分析。展望未來,隨著技術的發展,預期自動化 EDA 工具將更智慧化,能自動識別資料特徵、推薦最佳視覺化方案,並整合更多進階分析功能。對於追求效率的資料科學團隊而言,選擇合適的自動化 EDA 工具並結合自身業務需求進行調整,將是提升資料分析效率的關鍵。玄貓認為,自動化 EDA 工具並非取代資料科學家的專業判斷,而是賦能資料科學家,讓他們能更專注於高階分析和洞察力的發掘。