데이터를 측정 및 수집하다 보면 어떤 값은 측정이 안 되거나 누락되는 경우가 있습니다. 한 개의 샘플 당 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] 오승환 지음, "파이썬 머신러닝 판다스 데이터분석", 정보문화사
'Dev > python' 카테고리의 다른 글
[python] powershell에서 virtualenv 가상환경 활성화시 발생하는 오류 해결 방법 (0) | 2022.07.27 |
---|---|
[python] ModuleNotFoundError: No module named 'PIL' 오류 해결 방법 (0) | 2022.07.26 |
[pandas] 특정 날짜 이후 데이터만 선택하기 (0) | 2022.07.26 |
[PySide6] QLabel 수평 가운데에 배치하기 (0) | 2022.07.23 |
[PySide6] QLineEdit 위젯에 placeholder 넣는 방법 (0) | 2022.07.22 |
[pandas] NaN 값이 있는 행 또는 열 삭제하는 방법, dropna 메소드 (0) | 2022.07.22 |
[python] selenium 크롤링 find_element_by_css_selector 더 이상 사용 불가 (0) | 2022.07.21 |
[python] SQLAlchemy, MySQL 연결 에러 해결 방법(pool_recycle 수정?) (0) | 2022.07.20 |