반응형

결측치(missing value) 정의 및 제거 방법

Missing value는 누락된 값, 비어 있는 값을 뜻한다.
실제 현장에서는 데이터 수집 과정에서 발생한 오류로 Missing value가 포함되어 있는 경우가 많아 이 값들을 찾아서 제거하거나 대체하는 방법을 사용해야 한다.
 
먼저, 데이터가 크고 missing value의 수가 많지 않을 때는 missing value를 찾고 제거하는 방법을 사용하면 된다. Pandas의 pd.isna() 함수에 df를 입력하면 값들이 반환되는데 True로 반환된 값이 missing value이며 False로 반환된 값은 정상 값이다.
데이터가 적으면 한눈에 missing value를 찾기 쉽지만 데이터가 크다면 파악하기 어려우므로 pd.isna().sum()과 같이 메소드 체이닝을 사용하면 전체 데이터에서 총 몇 개의 missing value가 있는지 찾을 수 있다. 이렇게 찾은 값들을 df.dropna(subset = [변수명1, 변수명2, …])를 이용하면 missing value가 있는 행을 제거할 수 있다. 만약 모든 변수들을 대상으로 missing value가 하나라도 있을 때 행을 제거하고 싶으면 df.dropna()만 사용하면 된다.
 
위 방법은 간편하지만 데이터가 손실된다는 단점이 있어 평균값이나 최빈값과 같은 대표값을 구해 missing value를 대체하는 방법이 있다. 이 방식도 위와 동일하게 missing value를 찾고 평균이나 최빈값을 구한 다음에 df.fillna()를 이용하여 missing vlaue를 기준으로 정한 대표값으로 대체한다. 이 경우 기존의 데이터의 손실없이 데이터를 활용할 수 있다는 장점이 있다.