데이터: 결측치 및 이상치 – fillna
ㅁ 결측치 및 이상치
1. fillna
ㅇ 정의:
데이터셋 내 결측치(NaN, None 등)를 지정한 값이나 다른 데이터로 대체하는 Pandas 메서드.
ㅇ 특징:
– 특정 값, 평균/중앙값/최빈값 등 통계값, 이전/다음 값으로 결측치를 채울 수 있음.
– inplace=True 옵션으로 원본 데이터에 바로 적용 가능.
– method=’ffill'(앞 값으로 채움), method=’bfill'(뒤 값으로 채움) 지원.
ㅇ 적합한 경우:
– 결측치가 분석 결과에 큰 영향을 줄 수 있어 제거 대신 대체가 필요할 때.
– 시계열 데이터에서 연속성을 유지해야 할 때.
– 데이터 손실을 최소화하며 모델 학습에 활용하려는 경우.
ㅇ 시험 함정:
– fillna는 결측치만 채우며, 이상치 처리는 별도의 과정 필요.
– method 옵션과 value 옵션을 동시에 사용할 수 없음.
– inplace=True를 사용하면 반환값이 None이므로 변수에 할당 시 주의.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “fillna(method=’ffill’)은 이전 값으로 결측치를 채운다.”
O: “fillna(0)은 모든 결측치를 0으로 채운다.”
X: “fillna는 이상치를 자동으로 수정한다.”
X: “fillna는 결측치를 채우면서 데이터 타입을 반드시 변경한다.”
ㅁ 추가 학습 내용
fillna 메서드에서 value 매개변수에 딕셔너리를 전달하면 컬럼별로 서로 다른 값으로 결측치를 채울 수 있다. limit 매개변수를 사용하면 연속된 결측치 중 지정한 개수까지만 채울 수 있다. 시계열 데이터에서는 method=’ffill’은 이전 값으로 채우고, method=’bfill’은 다음 값으로 채우는 차이가 있으므로 구분해야 한다. 결측치 처리 후 데이터 타입이 변할 수 있으므로 후속 처리에서 형변환 여부를 반드시 확인해야 한다. fillna는 결측치를 지정한 값이나 방법으로 채우는 기능, dropna는 결측치가 있는 행이나 열을 제거하는 기능, interpolate는 보간법을 사용해 결측치를 채우는 기능이라는 차이가 있다.