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

박민철님의 프로필 이미지

작성한 질문수

현업 실무자에게 배우는 Kaggle 머신러닝 입문 - ML 엔지니어 실무 꿀팁

이상치(Outlier) 제거 기법 - IQR(Inter Quantile Range)

df.get_dummies 실행시 이진법이 아닌 false 또는 True로 반환됨.

작성

·

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)으로 변환됩니다. 이는 일반적으로 데이터 전처리 과정에서 빈번히 사용되는 패턴 중 하나입니다.

추가적인 질문이 있으시다면 언제든지 문의해 주세요.