-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
get_dummies와 fillna에 대해서 질문이 있습니다
21.06.10 10:33 작성 조회수 174
0
안녕하세요
데이터 전처리할 때 문자열 컬럼에 대해서는 get_dummies를 적용해서 one-hot을 하면 NaN 값까지 처리되는 것 같은데, 그러면 fillna을 따로 안해도 되는 것인가요? 아니면 get_dummies 전에 fillna를 하는 것이 좋나요 (크게 상관은 없을 것 같은데)? 감사합니다
답변을 작성해보세요.
1
권 철민
지식공유자2021.06.10
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))
답변 1