Python 코드

[Python] pandas.get_dummies()

PaperDrop 2025. 7. 12. 21:44

○ get_dummies 함수란?

  pandas.get_dummies()범주형(categorical) 데이터를 원-핫 인코딩(one-hot encoding) 방식으로 변환해주는 함수입니다. 즉, 문자열이나 범주형 열을 0과 1로 구성된 이진 변수들로 나누는 작업을 자동으로 처리해 줍니다.

 

 

○ 왜 사용하는가?

  머신러닝 모델은 대부분 숫자 데이터만 이해합니다. 문자형 데이터를 그대로 모델에 넣을 경우, 모델은 해당 데이터가 크고 작다는 의미를 가진다고 오해할 수 있습니다. 이를 방지하기 위해 get_dummies()를 사용해 의미 있는 숫자 표현으로 변환해주는 것이죠.

예를 들어 다음과 같은 데이터가 있을 때:

 

import pandas as pd

df = pd.DataFrame({'색상': ['빨강', '파랑', '초록']})

pd.get_dummies(df)
   색상_빨강  색상_파랑  색상_초록
0       1        0         0
1       0        1         0
2       0        0         1
 
 
 

○ 주요 파라미터 설명

  • data: 인코딩할 데이터프레임 혹은 시리즈
  • columns: 원-핫 인코딩할 열 지정 (기본값은 모든 범주형 열)
  • prefix / prefix_sep: 생성된 열 이름에 붙을 접두사와 구분자
  • drop_first: True로 설정하면 첫 번째 범주는 제거 (더미 변수의 다중공선성 방지)
  • dtype: 반환되는 열의 데이터 타입 지정 (기본값: np.uint8)
pd.get_dummies(df, drop_first=True)
   색상_파랑  색상_초록
0      0        0
1      1        0
2      0        1

 

 

○ get_dummies vs OneHotEncoder
구분 get_dummies OneHotEncoder (from sklearn)
사용 목적 빠르게 인코딩 모델 파이프라인에 통합
반환형 pandas.DataFrame numpy.ndarray or sparse matrix
파라미터 제어 간단함 정밀 제어 가능
결측치 처리 자동 처리 안 됨 처리 옵션 제공

 

 

 

 

○ 주의할 점

  • 범주 수가 많을 경우 차원이 급격히 증가할 수 있습니다 (고차원 문제)
  • 데이터 분할 전에 get_dummies를 적용하면 train/test 간 차원이 달라질 수 있으므로 주의가 필요합니다
  • drop_first 사용 시 모델 해석이 쉬워지지만, 정보 손실이 발생할 수 있습니다

 

 

○ 마무리

  pandas.get_dummies()는 매우 유용하면서도 간단한 인코딩 도구입니다. 데이터 전처리에서 자주 쓰이므로, 그 동작 원리와 특징을 잘 이해해두면 실전에서 큰 도움이 됩니다.

'Python 코드' 카테고리의 다른 글

[Python] Keras(TensorFlow)  (3) 2025.07.17
[Python] DataFrame.astype()  (1) 2025.07.14
[Python] DataFrame.replace()  (1) 2025.07.13
[Python] DataFrame.drop()  (1) 2025.07.12
[Python] Counter 함수 (from collections import Counter)  (0) 2025.07.03