Python

ELICE ML 명목형자료- 수치매핑

Haribo- 2022. 11. 16. 17:46

명목형자료- 수치매핑

 

명목형 자료 변환하기 - 수치 맵핑

머신러닝의 입력으로 사용하기 위하여 명목형 자료를 수치형 자료로 변환할 필요가 있습니다.

titanic 데이터에서 범주형 자료인 성별(Sex) 데이터는 male, female 값을 가지고 있습니다. 이를 0, 1 인 수치형 자료로 변환해 봅시다.

pandas의 DataFrame에서 이를 수행하기 위하여 replace를 사용합니다. 아래는 A -> B, C->D,… 변환하는 코드입니다.

DataFrame.replace({A:B, C:D,...})
 
 
import pandas as pd
from elice_utils import EliceUtils

elice_utils = EliceUtils()


# 데이터를 읽어옵니다.
titanic = pd.read_csv('./data/titanic.csv')
print('변환 전: \n',titanic['Sex'].head())

"""
1. replace를 사용하여 male -> 0, female -> 1로 변환합니다.
"""
titanic = titanic.replace({'male': 0, 'female': 1})

# 변환한 성별 데이터를 출력합니다.
print('\n변환 후: \n',titanic['Sex'].head())
   

명목형 자료 변환하기 - 더미 방식

명목형 자료를 수치형 자료로 변환하는 방식으로 더미 방식이 있습니다.

titanic 데이터에서 범주형 자료인 Embarked 데이터는 S, Q, C 3가지 값을 가지고 있습니다. 이를 더미 방식을 사용하여 변환해봅시다.

pandas의 DataFrame에서 이를 수행하기 위하여 get_dummies를 사용합니다.

 

pd.get_dummies(DataFrame[[변수명]])

 

 

  1. Embarked의 S, Q, C데이터를 더미를 사용하여 변환하고 dummies에 저장해 봅시다.
import pandas as pd
from elice_utils import EliceUtils

elice_utils = EliceUtils()
   
# 데이터를 읽어옵니다.
titanic = pd.read_csv('./data/titanic.csv')
print('변환 전: \n',titanic['Embarked'].head())

"""
1. get_dummies를 사용하여 변환합니다.
"""
dummies = pd.get_dummies(titanic[['Embarked']])

# 변환한 Embarked 데이터를 출력합니다.
print('\n변환 후: \n',dummies.head())

 

'Python' 카테고리의 다른 글

그래프 범례  (1) 2022.11.22
데이터 시각화 bar graph  (0) 2022.11.22
수치형자료의 요약-stdev, matplotlib  (0) 2022.11.21
Elice - 조건추출  (0) 2022.11.21
Elice ML 수치형자료 변환  (0) 2022.11.16