-
[인코딩,sklearn] Ordinal EncodingData Science/Pandas & Numpy&Scikit-learn 2021. 9. 14. 10:19반응형
인코딩 방법에는 여러가지가 존재한다.
본 포스팅에서는 Ordinal 인코딩을 사용한다.
One-Hot 인코딩은 단어 집합의 크기를 벡터 차원으로 하여 0과 1로 표현하는 반면,
Ordinal 인코딩은 단어를 0~n의 값으로 치환한다.
따라서 데이터프레임의 컬럼 개수는 그대로이다.
샘플 데이터 생성
import pandas as pd df=pd.DataFrame({ 'ID':[1,2,3,4,5], 'name':['아메리카노','바닐라라떼','아메리카노','민트초코','아메리카노'], 'tumbler':['N','Y','Y','N','N'] }) print(df)
컬럼별 데이터 타입 살펴보기
print(df.dtypes)
범주형 데이터 타입만 살펴보기 (categorical, object)
categorical_list = df.dtypes[df.dtypes == "object"].index.tolist() print("Categorical features: ", categorical_list)
범주형 데이터 Ordinal 인코딩
from sklearn.preprocessing import OrdinalEncoder enc = OrdinalEncoder() df[categorical_list] = enc.fit_transform(df[categorical_list]) print(df)
인코더에 fit된 범주형 데이터 리스트 보기
print(enc.categories_)
반응형'Data Science > Pandas & Numpy&Scikit-learn' 카테고리의 다른 글
[Pandas] Pandas를 통한 데이터 전처리 (0) 2022.09.13 회귀모델에서 타겟(y)값의 정규화 방법 비교 실험 (0) 2022.05.27 [Python]다중 조건으로 데이터 프레임 특정 행 추출하기(데이터 프레임 필터링) (0) 2022.05.10 [정규화,sklearn] MinMaxScaler, StandardScaler, RobustScaler (0) 2021.09.14 [인코딩,sklearn] One-Hot Encoding (0) 2021.09.14