본문 바로가기
self.python

[python] DataFrame의 결측치를 시각화 해서 확인하기 - missingno 사용

by 톤토니 2022. 5. 13.
반응형

결측치 시각화

DataFrame의 결측치를 시각화 해서 확인하기 - missingno 사용

 

 

데이터를 불러왔을 때 결측 값의 유무를 isnull( ) 또는 isna( ) 함수를 사용하여 확인할 수 있지만

missingno.matrix( ) 를 사용하여 시각화하여 확인할 수 도 있다.

그러려면 우선 missingno 라는 라이브러리가 설치되어 있어야 한다.

 

예시를 위해 seaborn 에서 기본적으로 제공하는 데이터셋 중 하나인 titanic 데이터를 불러 오겠다.

 

 

1. 필요한 라이브러리 import

 

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt 
# 데이터 분석에 있어서 기본적인 라이브러리 import

 

1 - 2. missingno 라이브러리 설치 후 import 하기

 

try : # missingno 라이브러리가 설치가 되어있으면 바로 import
	import missingno as msno
    
except : # 설치가 안되어있다면 설치 후 import
	!pip install missingno
    import missingno as msno

 

try - except 구문을 사용하여 이 라이브러리가 이미 설치되어 있다면 import를 하고,

설치가 안되어있다면 설치 후 import를 해 주었다. 나의 경우에는 이미 설치가 되어 있었다.

 

이미 설치가 되어있는 경우 아래와 같이 나온다.

 

Requirement already satisfied : ~~~~

 

설치가 완료되었다면 예시로 볼 데이터셋을 불러오자.

 

2. 타이타닉 데이터 셋 불러오기

 

titanics = sns.load_dataset('titanic')
titanics

 

 

실행하면 위와 같은 데이터 프레임이 보인다. age 열과 deck 열에 벌써 결측치가 있는 것을 알 수 있다.

 

 

3. matrix 로 결측치 시각화하기

 

msno.matrix(titanics)
plt.show()

missingno 라이브러리의 matrix( ) 함수를 사용하면 값이 있는 부분은 칠하고, 값이 없는 부분 즉 결측 데이터는 칠하지 않아서 흰색으로 표시되게 된다.

 

실행하면 아래와 같은 그래프를 볼 수 있다.

 

 

age 와 deck 에 결측치가 있고, embarked 와 embark_town 열에도 결측치가 있었음을 확인할 수 있다.

맞게 나온 것인지 확인하기 위해서 데이터 프레임을 확인해보자.

 

titanics.isna().sum()

 

 

실제로 embarked 와 embark_town 에 각각 2개씩의 결측치가 있었고, matrix 로 잘 시각화 된 것임을 알 수 있었다.

 

 

 

반응형

댓글