개발은 처음이라 개발새발

isnull(), notnull() 누락 데이터 확인 [python/seaborn] 본문

파이썬/판다스

isnull(), notnull() 누락 데이터 확인 [python/seaborn]

leon_choi 2022. 7. 19. 23:40
반응형

엑셀을 가지고 데이터를 다룰 때 가장 불편한 점이 있다면 데이터의 누락과 오류 같은 문제들을 바로 찾기가 쉽지 않다는 점입니다. 이번 시간에는 파이썬을 통해 누락 데이터에 대해 알아보는 방법과 이를 제거하는 것에 대해 알아보도록 하겠습니다. 우선 데이터는 seaborn 라이브러리의 타이타닉 데이터셋을 사용해보겠습니다. 혹시 seabron 라이브러리가 없다면 아래의 코드를 이용해 설치해야 합니다. 

pip install seaborn

우선 데이터를 불러오겠습니다. 

import seaborn as sns

df= sns.load_dataset('titanic')

print(df.head())

이렇게 df 옆에 .head()를 붙여 상단 5줄의 데이터만 확인해봤는데요. deck 컬럼을 보시면 누락 데이터에 "NaN"이라고 돼 있는 것을 확인할 수 있습니다. 하지만 이것만으로는 각각의 컬럼에 누락 데이터가 얼마나 있는지 알수가 없습니다. 이럴 때는 info() 매소드를 통해서 간접적으로 누락데이터가 얼마나 있는지 확인해볼 수 있습니다. 

import seaborn as sns

df= sns.load_dataset('titanic')

#print(df.head())

print(df.info())

이렇게 info() 매소드를 사용하면 컬럼의 정보들을 한눈에 볼 수 있습니다. non-null count의 경우는 유효한 데이트 즉 누락이 아닌 데이터의 개수를 보여주는데요. 지금 보시면 deck 컬럼은 891개 중 203개만이 데이터가 기입된 것을 확인할 수 있습니다. 그렇다면 직접적으로 누락된 데이터를 찾는 방법은 무엇이 있을까요? 바로 isnull(), notnull()매소드입니다.

 

*isnull(): 누락 데이터면 True를 반환하고 유효한 데이터가 존재하면 False를 반환한다.

*notnull(): 누락 데이터면 False를 반환하고 유효한 데이터는 True로 반환한다.

 

네 두 매소드의 차이는 누락 데이터를 True로 표출하는지 False로 표출하는지의 차이라고 보시면 되는데요. 그렇기에 필요에 따라 두 매소드 중에 골라서 사용하시면 되겠습니다. 저는 이번에 isnull()매소드를 사용해보겠습니다. 그리고 개수까지구할 건데요. 개수를 구하기 위해서는 누락 데이터의 합산이 필요하니 sum()매소드까지 사용하면 됩니다. 코드와 결과를 보시겠습니다.

import seaborn as sns

df= sns.load_dataset('titanic')

#누락 데이터 확인
print(df.isnull())

print('\n')

#누락 데이터 개수 확인

print(df.isnull().sum(axis=0))

네 이렇게 각 컬럼별로 누락 데이터가 몇개가 있는지 확인해봤습니다. 현재 deck이랑 age에 굉장히 많은 수의 누락데이터가 있는 것을 확인할 수 있습니다. 다음 시간에는 이 누락 데이터를 제거하는 방법에 대해서 다뤄보겠습니다.

반응형