У меня есть кадр данных pandas со следующей структурой
item_condition_id category
brand_name category
price float64
shipping category
main_category category
category category
sub_category category
hashing_feature_aa float64
hashing_feature_ab float64
Пример с частью данных:
brand_name shipping main_category category
Target 1 Women Tops & Blouses
unknown 1 Home Home Décor
unknown 0 Women Jewelry
unknown 0 Women Other
Я преобразовал категориальные (строки) столбцы в числовые, используя приведенный ниже код.
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
for i in range(len(X)):
X.iloc[:,i] = le.fit_transform(X.iloc[:,i])
После преобразования
brand_name shipping main_category category
0 1 1 3
1 1 0 0
1 0 1 1
1 0 1 2
Это работает, как и ожидалось, но при попытке применить inverse_transform для получения исходных категорий из числовых категорий возникает ошибка.
for i in range(len(X)):
X.iloc[:,i] = le.inverse_transform(X.iloc[:,i])
ValueError: значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any() или a.all()
Как решить эту ошибку в моем случае, что не так с моим кодом?
Моя цель — преобразовать категориальные (строковые) функции в числовые с помощью кодировщика меток, чтобы применить sklearn.feature_selection.SelectKbest.fit_transform(X,y), без кодирования меток этот шаг не выполняется.
Спасибо