之前在做數(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)計學特征充尉、相關(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ù)清理和準備很重要,確保分析的可靠性筹吐,并及早發(fā)現(xiàn)問題糖耸。
易于與其他流集成:數(shù)據(jù)分析的所有度量都可以以標準JSON格式使用。
大型數(shù)據(jù)集的數(shù)據(jù)探索:即使體量很大的數(shù)據(jù)集丘薛,ydata_profiling也可以輕松生成報告嘉竟,它同時支持Pandas數(shù)據(jù)幀和Spark數(shù)據(jù)幀。
數(shù)據(jù)集概覽 Overview
首先可以看到數(shù)據(jù)集的整體信息洋侨,包括字段數(shù)舍扰、缺失值行、重復(fù)行希坚、占內(nèi)存大小等等
字段詳細信息 Variables
你可以看到所有字段的統(tǒng)計學特征以及分布情況边苹,包括均值、分位值裁僧、最大最小值
字段分布關(guān)系 Interactions
這是個交互可視化圖勾给,可以選擇任意兩個字段,看他們的散點分布關(guān)系锅知,通過這個你可以很直觀的知道各個字段的關(guān)聯(lián)關(guān)系是什么樣的播急,正相關(guān)、負相關(guān)售睹、無相關(guān)等
字段相關(guān)性 Correations
這里通過熱力圖展示每個字段的相關(guān)性桩警,也可以看到具體的值
缺失值 Missing values
通過柱狀圖可以清晰看到每個字段缺失值情況
樣本 Sample
可以展示前10、尾10的樣本數(shù)據(jù)
如果你想加快數(shù)據(jù)分析的速度昌妹,可以好好把ydata_profiling利用起來捶枢,前期數(shù)據(jù)探索階段可以省很多時間。