2022-07-23 13:07:27

데이터를 측정 및 수집하다 보면 어떤 값은 측정이 안 되거나 누락되는 경우가 있습니다. 한 개의 샘플 당 30개의 특성이 있는 데이터가 존재한다고 가정해보겠습니다. 30개 중 29개 특성에 해당하는 값은 있고 1개의 특성 값은 누락된 상황입니다. 이런 경우에 그냥 이 샘플을 버리시겠습니까? 그러기엔 나머지 29개가 너무 아깝죠. 데이터 하나 하나가 돈이 되는 세상에서 30개 중 하나가 없다고 해서 의미없다고 버린다? 말이 안 되는 이야기입니다.  

 

이런 경우에는 그 누락된 값을 해당 특성의 평균값으로 채워넣어 주는 것도 하나의 방법입니다. 물론 실제와 조금 다르긴 하겠지만, 그래도 귀중한 샘플 하나를 살리기 위한 최선의 조치라고 볼 수 있겠습니다. pandas 데이터프레임의 fillna 메소드를 활용하면 NaN 값을 적절히 채워줄 수 있습니다. 

 

아래와 같은 엑셀 파일이 있다고 가정하겠습니다.

 

 

feature2의 값이 비어있는 행이 두 개인 상황입니다. 이 값들에 feature2의 평균값을 넣어주는 코드를 짜보도록 하겠습니다. 

 

import pandas as pd

df = pd.read_excel('./dataset.xlsx')
print(df)

df['feature2'].fillna(df['feature2'].mean(), inplace=True)
print(df)

 

위 코드를 실행하면, NaN 값들이 feature2의 평균값인 27.818182로 대체된 것을 확인할 수 있습니다. 

 

 

관련 글

- [pandas 오류 해결] TypeError: read_excel() got an unexpected keyword argument 'fillna'  

 

참고자료

[1] 오승환 지음, "파이썬 머신러닝 판다스 데이터분석", 정보문화사