Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas - DataFrame을 바이너리(이진) 데이터로 변환하는 방법

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()는 머신러닝 모델 학습 시 범주형 변수를 수치형으로 변환할 때 매우 유용하게 활용됩니다.