개발/파이썬

파이썬. Pandas NaN값 처리하기

웅'jk 2022. 11. 24. 14:58

NaN 값이 존재하게 되면 데이터를 분석하는 과정에서 오류가 나타날 수 있다.

따라서 이 NaN값을 처리해줘야 한다.

 

1. NaN값이 있는 행을 지운다.

2. NaN값을 무언가로 대체한다.

 

df라는 데이터프레임은 다음과 같다

 

먼저 비어있는 데이터가 어디에 있는지 확인을 해야한다.

그럴때 사용하는 함수는 isna()와 notna()가 있다.

 

isna() : 데이터가 비어있으면 True, 비어있지 않으면 False

notna() : 데이터가 있으면 True, 비어있으면 False 

 

그러면 이제 이 비어있는 값을 가지고 있는 행을 지워보자.

 

이럴때 사용하는 함수는 dropna() 함수이다.

df.dropna() # 행을 삭제한다.

 

행을 삭제하지 않고 다른 값으로 대체하려면 fillna()를 이용한다.

fillna 을 이용하면 평균값을 집어 넣거나 왼쪽에서 채우기, 오른쪽에서 채우기등등을 할 수 있다.

df.fillna( method = 'ffill' , axis = 0 )

비어있는 값을 행의 윗부분값을 가져와 채워넣었다. 

ffill은 앞부분을 가져와서 채운다.

axis 는 행을 가져올지 열을 가져올지 정한다.

df.fillna(method='bfill' , axis = 0 )

bfill은 뒷부분을 가져와 채운다.

axis 는 행을 가져올지 열을 가져올지 정한다.

 

또한 fillna안에 평균값이나 최소값 ,최대값을 집어넣어서 채울 수 도 있다.

이런식으로 df.mean()을 통해 각컬럼별 평균값을 비어있는 데이터에 넣어준다

마찬가지로 최대값은 df.max() 최소값은 df.min()을 통해 삽입이 가능하다.