24.06.10 23:22 작성
·
97
0
df = pd.get_dummies(df, columns = ['Location', 'WindGustDir', 'WindDir9am', 'WindDir3pm'])
MinTemp MaxTemp Rainfall Evaporation Sunshine WindGustSpeed WindSpeed9am WindSpeed3pm Humidity9am Humidity3pm ... WindDir3pm_NNW WindDir3pm_NW WindDir3pm_S WindDir3pm_SE WindDir3pm_SSE WindDir3pm_SSW WindDir3pm_SW WindDir3pm_W WindDir3pm_WNW WindDir3pm_WSW
0 13.4 22.9 0.6 4.4 8.2 44.0 20.0 24.0 71.0 22.0 ... False False False False False False False False True False
1 7.4 25.1 0.0 4.4 8.2 44.0 4.0 22.0 44.0 25.0 ... False False False False False False False False False True
2 12.9 25.7 0.0 4.4 8.2 46.0 19.0 26.0 38.0 30.0 ... False False False False False False False False False True
3 9.2 28.0 0.0 4.4 8.2 24.0 11.0 9.0 45.0 16.0 ... False False False False False False False False False False
4 17.5 32.3 1.0 4.4 8.2 41.0 7.0 20.0 82.0 33.0 ... False True False False False False False False False False
5 rows × 106 columns
one hot encoding시에 이진법(0 또는 1)로 반환되어야하는데 false 또는 True로 반환됨.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
님이 말씀하신 현상은 pandas의 get_dummies
함수가 내부적으로 데이터 타입을 boolean으로 처리하기 때문에 발생한 것으로 보입니다. 보통 이진법 값(0 또는 1)이 기대되는 상황에서 False와 True로 반환되더라도, 실제 머신러닝 모델에 사용될 때는 0과 1로 올바르게 인식됩니다.
만약 반드시 0과 1의 정수형으로 결과를 얻고 싶으시다면, 결과 데이터프레임 전체를 int 타입으로 변환하는 단계를 추가할 수 있습니다. 이는 다음과 같은 코드로 구현할 수 있습니다:
df = pd.get_dummies(df, columns=['Location', 'WindGustDir', 'WindDir9am', 'WindDir3pm']).astype(int)
이렇게 하면, get_dummies
함수를 통해 생성된 모든 열이 정수형(0 또는 1)으로 변환됩니다. 이는 일반적으로 데이터 전처리 과정에서 빈번히 사용되는 패턴 중 하나입니다.
추가적인 질문이 있으시다면 언제든지 문의해 주세요.