본문 바로가기

Pandas/전처리

판다스 - 누락 데이터 처리 : dropna, thresh, fillna, idxmax, ffill, bfill

반응형

데이터 불러오기

 

 

 

 

 

 

 

누락값 살펴보기

 

 

 

불린 조건을 '입력된 값의 개수가 전체 행의 개수와 같지 않다'로 설정

 

즉, age, embarked, deck, embark_town은 누락값이 있다.

 

 

 

 

시리즈에 cond로 필터링하면 누락값이 있는 컬럼들의 입력값의 개수를 볼 수 있다.

 

 

 

 

 

 

dropna, thresh

 

df.dropna(axis=0 or 1, thresh=n)

축을 기준으로 n개 미만 입력되면 그 축을 삭제하겠다.

 

 

 

데이터프레임의 열 개수는 len(df.columns)로 구할 수 있다.

 

thresh가 500일땐 203개만 입력된 deck 컬럼이 삭제되었다.

(15 → 14)

 

 

 

 

thresh가 800일땐

 

714개가 입력된 age컬럼과

 

203개가 입력된 deck컬럼이 삭제되었다.

(15 → 13)

 

 

 

 

 

 

 

 

dropna, how='any'

 

 

age컬럼을 기준으로 NaN값이 있는 행을 삭제한다.

 

전체 891개의 행 중에서 177개의 행이 삭제되어 714개의 행만 남았다.

 

 

 

 

 

 

 

누락 데이터 치환1

 

평균값으로 채워넣기 - fillna, mean()

 

 

 

age 컬럼의 평균값은 29.699118이다.

 

데이터를 삭제하기보단 평균값으로 그 자리를 채우는 것이 좋은 결과로 이어질 수 있다.

 

새로운 컬럼을 생성할 때 기존 컬럼에서 fillna 메서드를 이용한다.

 

5번행이 age의 평균값으로 채워진 것을 확인할 수 있다.

 

 

 

 

 

 

 

누락 데이터 치환2

 

최빈값으로 채워넣기 - fillna, idxmax()

 

 

embark_town 컬럼에서 가장 많이 나온 값은 Southampton이다.

 

 

 

 

 

most_freq 변수에 넣고 

 

가장 많이 나온 값을 most_freq와 바꾸면 된다.

 

 

 

 

 

기존의 누락값이 최빈값인 Southampton으로 바뀌었다.

 

 

 

 

 

 

누락 데이터 치환3

 

데이터의 특성상 서로 이웃한 데이터끼리 유사성이 높을 수 있다.

 

method='ffill'

 

 

fill gaps forward ↓

 

바로 위의 값으로 채워 넣는다.

 

 

 

 

 

 

method='bfill'

 

 

fill gaps backward ↑

 

바로 아랫값으로 채워 넣는다.

 

 

반응형