인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

yeongjae80669468's profile image
yeongjae80669468

asked

[Revised Edition] The Complete Guide to Python Machine Learning

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

Written on

·

287

0

안녕하세요

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

머신러닝 배워볼래요? python통계

Answer 1

1

dooleyz3525님의 프로필 이미지
dooleyz3525
Instructor

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))
yeongjae80669468's profile image
yeongjae80669468

asked

Ask a question