강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

젓인님의 프로필 이미지
젓인

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

get_dummies와 fillna에 대해서 질문이 있습니다

작성

·

299

0

안녕하세요

데이터 전처리할 때 문자열 컬럼에 대해서는 get_dummies를 적용해서 one-hot을 하면 NaN 값까지 처리되는 것 같은데, 그러면 fillna을 따로 안해도 되는 것인가요? 아니면 get_dummies 전에 fillna를 하는 것이 좋나요 (크게 상관은 없을 것 같은데)? 감사합니다 

답변 1

1

권 철민님의 프로필 이미지
권 철민
지식공유자

get_dummies()가 null을 처리하는 방식이 좀 다릅니다.

get_dummies(dummy_na=False)일 경우(default가 dummmy_na=False) 기본적으로 Nan값을 one hot encoding 을 1값이 하나가 있는 값으로 만드는게 아니라(즉 one hot) all 0 으로 만들며, dummy_na = True이면 NaN값을 간주해서 One hot으로 만듭니다.

import pandas as pd
import numpy as np
df = pd.DataFrame({'col1':['a''b', np.nan]})
print(df)
print(pd.get_dummies(df))
print(pd.get_dummies(df, dummy_na=True))

 fillna를 미리하면 dummy_na = True와 동일하게 변형하겠다는 의미 입니다.

df_fill = df.fillna('na_val')
print(df_fill)
print(pd.get_dummies(df_fill))
젓인님의 프로필 이미지
젓인

작성한 질문수

질문하기