1. 결측치 접근 방식
1) 미가공 데이터(raw data) > 바로 결측치 처리
2) 미가공 데이터 > 필요한 feature만 따로 뽑기 > 그 후 결측치 처리
2. 결측치 처리 방식
: 데이터에 대한 이해( + 해당 데이터의 도메인에 대한 이해)
& 데이터의 분포 확인
& 작업의 목적( 구하고자 하는 바가 무엇인가) 고려하여 결측치 처리 방식을 선택해야한다.
1) drop (삭제)
- 결측치가 적은 경우
- 결측치가 있는 행 또는 열을 삭제해도 전체 데이터에 영향을 크게 안 미칠 것 같은 경우
- BUT 결측치가 들어있는 데이터(행/열)을 아예 삭제하는 것이므로, 전체 데이터에 영향 끼칠 수 있어 위험
- 따라서 drop할 땐 신중하게 선택
- dropna
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
# 결측값 제거
# axis : 0(행), 1(열)
# how : 'any'(결측값이 하나라도 있으면, 해당 행/열 제거), 'all'(모든 값이 결측값일 때, 해당 행/열 제거)
df.drop([],axis=)
# [] : 삭제할 데이터 프레임의 열 혹은 행
# axis=0 (행), axis=1 (열)
df.drop(index =[]) #삭제하고 싶은 index
df.drop(column=[]) #삭제하고 싶은 column
2) 결측값 채우기
※ 데이터의 분포 확인 ※
(1) 평균으로 채우기 : 데이터의 분포가 정규분포를 이루고 있는 경우
(2) 최빈값으로 채우기 : 데이터의 분포가 어느 한 쪽으로 치우친 경우
(3) 0으로 채우기
(4) -로 채우기
df.fillna(mean) #평균으로 채우기
df.fillna(mod) #최빈값으로 채우기
df.fillna(0) #0으로 채우기
df.fillna('-') #string인 -로 채우기