python

[python] 카테고리형(categorical) => 수치형(numerical) 데이터로 변경하는 2가지 방법

독립성이 강한 ISFP 2022. 3. 18. 19:59
728x90
반응형

-카테고리(categorical)형 데이터를 수치형(numerical) 데이터로 변환해주는 작업은 필수로 해줘야 하는 전처리 작업임.

 

카테고리형(categorical) => 수치형(numerical) 데이터로 변경하는 2가지 방법을 소개한다.

 

titanic_df = pd.read_csv('titanic_train.csv')
titanic_df.head(3)
 

 

 

1. astype('category').cat.codes (cat.codes를 호출해 주면 자동으로 숫자형 리턴을 함)

train['Sex']=train['Sex'].astype('category').cat.codes
train['Sex']
0      1  #male
1      0  #female
2      0
3      0
4      1
      ..
886    1
887    0
888    0
889    1
890    1
Name: Sex, Length: 891, dtype: int8

male => 1

female => 0

으로 자동으로 변환됨

 

단점: 어떤 클래스가 숫자형으로 변환되었는지 확인하기 어려움

 

2. LabelEncoder  (sklearn.preprocessing 안에 있는 모듈인 LabelEncoder 를 활용)

 

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
result = le.fit_transform(train['Sex'])
print(result)
[1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 1
....
1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1]
# 변환된 label classes 확인
le.classes_
array(['female', 'male'], dtype=object)

어떤 클래스가 숫자형으로 변환되었는지 확인이 가능함!

728x90
반응형