개발/ETC

[python] 범주형 변수 인코딩 (labelencoder, onehotencoder)

wonpick 2021. 5. 10. 12:39

잘됨

encoder = LabelEncoder()
df5['division'] = encoder.fit_transform(df5['division'].values)

df5['office'] = encoder.fit_transform(df5['office'].values)

오류

import numpy as np
from sklearn.preprocessing import LabelEncoder

# 라벨 인코더 생성
encoder = LabelEncoder()

# df2 데이터를 이용 피팅하고 라벨숫자로 변환한다
arr = np.array(df5['division'])
encoder.fit(arr)

df5_encoded = encoder.transform(arr)

# df2데이터를 다시 데이터 프레임으로 변경
df5['division'] =  pd.DataFrame(df5_encoded, columns = ['division'])
print('before: ', arr)
print('after: ' , df5_encoded)

# df2데이터를 이용 피팅하고 라벨숫자로 변환한다
arr2 = np.array(df5['office'])
encoder.fit(arr2)
df2_encoded2 = encoder.transform(arr2)

# df2데이터를 다시 데이터 프레임으로 변경
df5['office'] =  pd.DataFrame(df2_encoded2, columns = ['office'])
print('before: ', arr2)
print('after: ' , df2_encoded2)