|Playdata_study/Python
210722_NaN (누락데이터)
케리's
2021. 7. 23. 20:48
DataFrame - 누락데이터 처리하기
데이터 분석시 제공된 데이터를 살펴보면 값이 입력되어 있지 않은 경우가 종종 있다.
이런 경우를 Missing Value 가 있다고 표현한다.
✔ Missing Value를 처리하는 대표적인 전략
- 데이터가 거의 없는 Feature는 Feature 자체를 Drop 시킨다.
- 데이터가 없으면 바로 Drop
- Missing Value의 최소 갯수를 정해서 어느 이상 갯수를 넘어서면 Drop
- 최빈값, 평균값, 0 등의 값으로 비어있는 데이터를 채우기
판다스는 누락된 데이터를 모두 NaN 으로 처리한다.
또한 판다스 객체의 모든 통계함수는 누락데이터를 무시하고 연산을 진행한다.
✔ 누락데이터를 처리하는 함수들
- dropna() → NaN이 하나라도 있는 로우는 모두 삭제
- dropna(how ='all') → 모든 값이 NaN인 경우만 삭제
- dropda('how ='any') → NaN 이 하나라도 있는 로우는 모두 삭제
- fillna()
- isnull()
- notnull()
import numpy as np
import pandas as pd
from pandas import DataFrame
from numpy import nan as NA
df = DataFrame([[1,6.5,3],
[1, NA, NA],
[NA,NA, NA],
[NA, 6.7, 2]
])
df
누락데이터 삭제하기
# dropna()
# 누락데이터가 하나라도 있으면 해당 로우가 삭제된다
# 기본적으로 원본 유지한다.
removeNa = df.dropna()
removeNa
# dropna(how='all')
df.dropna(how='all')
# dropna(thresh=2)
# NaN 이 아닌 일반값이 두개 이상이면 남긴다
df.dropna(thresh=2)
# dropna(thresh=3)
# NaN이 아닌 일반값이 세개 이상이면 남긴다
df.dropna(thresh=3)
누락데이터 채우기
# fillna ()
df.fillna(df.mean()) # 평균값으로 채우기
df.fillna(value=5)
df.fillna(method = 'ffill') # 결측값을 앞 방향으로 채우기