Pandas에서는 get_dummies() 메서드를 사용하여 범주형(categorical) 데이터가 담긴 DataFrame을 손쉽게 바이너리(이진) 데이터로 변환할 수 있습니다. 이 메서드는 원-핫 인코딩(one-hot encoding) 방식으로 동작하며, 각 고유한 범주 값마다 새로운 열을 생성하고 해당 여부에 따라 0 또는 1의 값을 채워 넣습니다.
먼저 예제로 사용할 두 개의 열(Student, Result)을 가진 Pandas DataFrame을 생성해 보겠습니다.
dataFrame = pd.DataFrame(
{
"Student": ['Jack', 'Robin', 'Ted', 'Scarlett', 'Kat'],
"Result": ['Pass', 'Fail', 'Fail', 'Pass', 'Pass']
}
)이제 get_dummies() 메서드에 변환하고자 하는 열을 지정합니다. 여기서는 "Result" 열의 "Pass"와 "Fail" 값을 이진 형태로 표현하고자 하므로, "Result" 열을 인자로 전달합니다.
pd.get_dummies(dataFrame["Result"])
전체 예제 코드
다음은 위 과정을 정리한 전체 코드입니다.
import pandas as pd
# DataFrame 생성
dataFrame = pd.DataFrame(
{
"Student": ['Jack', 'Robin', 'Ted', 'Scarlett', 'Kat'],
"Result": ['Pass', 'Fail', 'Fail', 'Pass', 'Pass']
}
)
print("DataFrame ...\n", dataFrame)
# 이진 데이터로 변환
dfBinary = pd.get_dummies(dataFrame["Result"])
print("\n바이너리 형태로 표시된 DataFrame...\n", dfBinary)실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
DataFrame ... Result Student 0 Pass Jack 1 Fail Robin 2 Fail Ted 3 Pass Scarlett 4 Pass Kat 바이너리 형태로 표시된 DataFrame... Fail Pass 0 0 1 1 1 0 2 1 0 3 0 1 4 0 1
출력 결과를 보면 "Result" 열의 "Pass"와 "Fail" 값이 각각 별도의 열로 분리되었으며, 학생별로 해당하는 값의 위치에만 1이 표시되는 것을 확인할 수 있습니다. 이처럼 get_dummies()는 머신러닝 모델 학습 시 범주형 변수를 수치형으로 변환할 때 매우 유용하게 활용됩니다.