У меня есть следующая программа:
cat_feats = ['x', 'y', 'z', 'a', 'b',
'c', 'd', 'e']
onehot_encoder = OneHotEncoder(categories='auto')
# convert each categorical feature from integer
# to one-hot
for feature in cat_feats:
data[feature] = data[feature].array.reshape(len(data[feature]), 1)
data[feature] = onehot_encoder.fit_transform(data[feature])
У меня проблемы с этим. Я получаю:
'PandasArray' object has no attribute 'reshape'
Вывод data.head () перед использованием кодера выглядит следующим образом:
0 2 1 4 6 3 2 1 37
2 1 7 2 10 0 4 1 37
3 2 15 2 6 0 2 1 37
5 2 0 4 7 1 4 1 37
7 4 14 2 9 0 4 1 37
Этот вывод имеет тип DataFrame и содержит только целые числа, которые я пытаюсь конвертировать в одну горячую. Я пробовал .array, .values, .array.reshape (-1, 1), но ничего из этого не работает. Я обнаружил, что попытка .values, похоже, сработала в первой строке для l oop, но я получил мусор из-за конвертации в одно касание.
Пожалуйста, помогите.