• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

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

21.06.10 10:33 작성 조회수 174

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))