Python可視化查看數據集完整性: missingno庫(用於數據分析前的數據檢查)


數據分析之前首先要保證數據集的質量,missingno庫提供了一個靈活易用的可視化工具來觀察數據缺失情況,是基於matplotlib的,接受pandas數據源

快速開始

樣例數據使用 NYPD Motor Vehicle Collisions Dataset 數據集. 運行下面命令獲得數據

pip install quilt
quilt install ResidentMario/missingno_data

加載數據到內存

from quilt.data.ResidentMario import missingno_data
collisions = missingno_data.nyc_collision_factors()
collisions = collisions.replace("nan", np.nan)

image

有幾個主要函數來不同方式的可視化展示數據集數據缺失情況

Matrix

Matrix是使用最多的函數,能快速直觀地看到數據集的完整性情況,矩陣顯示

import missingno as msno
%matplotlib inline
msno.matrix(collisions.sample(250))

image右邊的迷你圖總結了數據集的總的完整性分布,並標出了完整性最大和最小的點

最多支持50列

可以通過figsize指定圖像大小,例如這樣msno.matrix(collisions.sample(250),figsize=(12,5))

如果數據是時序的,那可以用freq參數

null_pattern = (np.random.random(1000).reshape((50, 20)) > 0.5).astype(bool)
null_pattern = pd.DataFrame(null_pattern).replace({False: None})
msno.matrix(null_pattern.set_index(pd.period_range('1/1/2011', '2/1/2015', freq='M')) , freq='BQ')

image

Bar Chart

msno.bar可以簡單的展示無效數據的條形圖

msno.bar(collisions.sample(1000))

image

Heatmap

熱圖

image兩個變量的無效相關范圍從-1(如果一個變量出現,另一個肯定沒有)到0(出現或不出現的變量對彼此沒有影響)到1(如果一個變量出現,另一個肯定也是)

數據全缺失或全空對相關性是沒有意義的,所以就在圖中就沒有了,比如date列就沒有出現在圖中

大於-1和小於1表示有強烈的正相關和負相關,但是由於極少數的臟數據所以並不絕對,這些例外的少數情況需要在數據加工時候予以注意

熱圖方便觀察兩個變量間的相關性,但是當數據集變大,這種結論的解釋性會變差

Dendrogram

樹狀圖

image

樹狀圖采用由scipy提供的層次聚類算法通過它們之間的無效相關性(根據二進制距離測量)將變量彼此相加。在樹的每個步驟中,基於哪個組合最小化剩余簇的距離來分割變量。變量集越單調,它們的總距離越接近0,並且它們的平均距離越接近零

在0距離處的變量間能彼此預測對方,當一個變量填充時另一個總是空的或者總是填充的,或者都是空的

樹葉的高度顯示預測錯誤的頻率

和矩陣Matrix一樣,只能處理50個變量,但是通過簡單的轉置操作即可處理更多更大的數據集


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM