결측값 처리 (I)

Python으로 배우는 Machine Learning 특성 공학

Robert O'Callaghan

Director of Data Science, Ordergroove

전행 삭제(Listwise deletion)

      SurveyDate      ConvertedSalary     Hobby ... \
0  2/28/18 20:20                  NaN       Yes ...
1  6/28/18 13:26              70841.0       Yes ...
2    6/6/18 3:37                  NaN        No ...
3    5/9/18 1:06              21426.0       Yes ...
4  4/12/18 22:41              41671.0       Yes ...
Python으로 배우는 Machine Learning 특성 공학

Python에서의 전행 삭제

# 하나라도 결측이 있는 모든 행 삭제
df.dropna(how='any')
Python으로 배우는 Machine Learning 특성 공학

Python에서의 전행 삭제

# 특정 열에서 결측이 있는 행 삭제
df.dropna(subset=['VersionControl'])
Python으로 배우는 Machine Learning 특성 공학

삭제의 문제점

  • 유효한 데이터도 삭제됨
  • 무작위성 가정에 의존
  • 정보 감소
Python으로 배우는 Machine Learning 특성 공학

문자열로 대체하기

# 특정 열의 결측값을
# 지정한 문자열로 대체
df['VersionControl'].fillna(
    value='None Given', inplace=True
)
Python으로 배우는 Machine Learning 특성 공학

결측값 기록하기

# 값이 결측이 아닌 위치 기록
df['SalaryGiven'] = df['ConvertedSalary'].notnull()
# 특정 열 삭제
df.drop(columns=['ConvertedSalary'])
Python으로 배우는 Machine Learning 특성 공학

연습 시간

Python으로 배우는 Machine Learning 특성 공학

Preparing Video For Download...