본문 바로가기
파이썬. 데이터분석/Pandas

Pandas DataFrame : isnull, replace, fillna, dropna 결측치처리

by 한국수달보호협회장 2022. 6. 21.

데이터분석에서 가장 중요한 데이터전처리. 데이터 전처리에서 가장 선행되는게 결측치제거이다.

 

0이라는 값은 상황에 따라 그 자체로 유의미한 값일 수도, 잘못된 값일 수도 있다.

'해당 직원이 자격증이 몇개있을까?'에 관한 데이터일때는 '0개'인게 답이 될수 있다. 그러나, '키가 몇 cm인가?' '몸무게가 몇cm인가?' 라는 질문에 '0'은 잘못된 대답이니 일단 NaN으로 만들어준다. 이래야 제거하기 쉽다.

 

np.Nan으로 한거라 numpy는 import를 해줘야된다.

 

isnull : 결측값이 있으면 True를 내보낸다

notnull : isnull과 반대 결측값이 있으면 False를 내보낸다

 

 

 

df.isnull().sum() : isnull은 sum이랑 같이 써서 column별로 결측값이 몇개있는지를 파악할 수 있다.

이게 맨 처음 데이터를 파악할 때 df.info()만큼 중요하다.

 

df.dropna()는 그냥 어떤 곳에서든지 NaN이 있으면 행을 다 지워버린다.

subset으로 column을 지정해주면, 해당 column의 NaN이 있을시에 행을 지워준다.

 

subset의 column은 list형식으로 2개이상 적는것도 가능한데 OR조건이다.  하나라도 있으면 행을 지운다

 

 

+++ 원래 dropna는 NaN이 하나라도 열에 있으면 열하나를 통째로 삭제하는데

how='all' 매개변수를 입력해주면 열에 모든 값이 NaN일때만 열을 삭제한다.

 

df.fillna : 결측치에 해당값을 채운다.  아래 예시는 결측치를 mean으로 채움

 

 

fillna를 최빈값으로 채우기