Ydata_Profiling:自動生成數(shù)據(jù)探索報告的Python庫
之前在做數(shù)據(jù)分析的時候,用過一個自動化生成數(shù)據(jù)探索報告的Python庫:ydata_profiling
一般我們在做數(shù)據(jù)處理前會進行數(shù)據(jù)探索,包括看統(tǒng)計分布、可視化圖表、數(shù)據(jù)質(zhì)量情況等,這個過程會消耗很多時間,可能需要上百行代碼才能實現(xiàn)。
ydata_profiling能夠直接完成數(shù)據(jù)探索的工作,只需要幾行代碼,它會生成互動網(wǎng)頁形式的報告,里面包含數(shù)據(jù)概覽、字段分布、統(tǒng)計學(xué)特征、相關(guān)性、缺失值、樣本信息等。
# 導(dǎo)入庫
from ydata_profiling import ProfileReport
import pandas as pd
# 讀取數(shù)據(jù)
df = pd.read_csv('housing.csv')
# 自動生成數(shù)據(jù)探索報告
profile = ProfileReport(df, title="Profiling Report")
profile
以上代碼在Jupyter notebook中執(zhí)行,生成數(shù)據(jù)探索報告如下
ydata_profiling文檔提了幾個用途,我覺得還是比較實用的。
- 提供數(shù)據(jù)概覽:包括廣泛的統(tǒng)計數(shù)據(jù)和可視化圖表,提供數(shù)據(jù)的整體視圖。該報告可以作為html文件共享,也可以作為小部件集成在Jupyter筆記本中。
- 數(shù)據(jù)質(zhì)量評估:識別缺失數(shù)據(jù)、重復(fù)數(shù)據(jù)和異常值。這些對于數(shù)據(jù)清理和準(zhǔn)備很重要,確保分析的可靠性,并及早發(fā)現(xiàn)問題。
- 易于與其他流集成:數(shù)據(jù)分析的所有度量都可以以標(biāo)準(zhǔn)JSON格式使用。
- 大型數(shù)據(jù)集的數(shù)據(jù)探索:即使體量很大的數(shù)據(jù)集,ydata_profiling也可以輕松生成報告,它同時支持Pandas數(shù)據(jù)幀和Spark數(shù)據(jù)幀。
數(shù)據(jù)集概覽 Overview
首先可以看到數(shù)據(jù)集的整體信息,包括字段數(shù)、缺失值行、重復(fù)行、占內(nèi)存大小等等
字段詳細(xì)信息 Variables
你可以看到所有字段的統(tǒng)計學(xué)特征以及分布情況,包括均值、分位值、最大最小值
字段分布關(guān)系 Interactions
這是個交互可視化圖,可以選擇任意兩個字段,看他們的散點分布關(guān)系,通過這個你可以很直觀的知道各個字段的關(guān)聯(lián)關(guān)系是什么樣的,正相關(guān)、負(fù)相關(guān)、無相關(guān)等
字段相關(guān)性 Correations
這里通過熱力圖展示每個字段的相關(guān)性,也可以看到具體的值
缺失值 Missing values
通過柱狀圖可以清晰看到每個字段缺失值情況
樣本 Sample
可以展示前10、尾10的樣本數(shù)據(jù)
如果你想加快數(shù)據(jù)分析的速度,可以好好把ydata_profiling利用起來,前期數(shù)據(jù)探索階段可以省很多時間。