Я использовал LabelEncoder
и OneHotEncoder
для преобразования моих категориальных данных в числовые, но, поскольку я довольно новичок в машинном обучении, я сделал некоторые вещи, которые не следовало бы делать с OneHotEncoder
. Поэтому я хочу изменить то, что я сделал с OneHotEncoder
.
Я провел поиск в Интернете и попробовал pd.get_dummies()
, но, когда OneHotEncoder
изменил мои данные на 9-мерные, я получил
Исключение: данные должны быть одномерными
ошибка, поэтому она не работает.
Я также попытался применить для декодирования столбцов в соответствии с моим поиском с кодом выглядит следующим образом.
X_level = pd.DataFrame({'1':[1,0,0,0,0,0,0,0,0],'2':[0,1,0,0,0,0,0,0,0],'3':[0,0,1,0,0,0,0,0,0],'4':[0,0,0,1,0,0,0,0,0],'5':[0,0,0,0,1,0,0,0,0],'6':[0,0,0,0,0,1,0,0,0],'7':[0,0,0,0,0,0,1,0,0],'8':[0,0,0,0,0,0,0,1,0],'9':[0,0,0,0,0,0,0,0,1]})
def get_X_level(row):
for c in X_level.columns:
if row[c]==1:
return c
X_level.apply(get_X_level, axis=1)
Даже если я получил
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
dtype: object
я хочу, чтобы это было в моем массиве, а не в моем. Так что это не поможет мне и с моей проблемой.
Я хочу, чтобы этот результат был в моем X_level
массиве, а не в моем Out