Я работаю над набором данных, в котором у меня есть различные строковые столбцы с разными значениями, и я хочу применить one hot encoding
.
Вот пример набора данных:
v_4 v5 s_5 vt_5 ex_5 pfv pfv_cat
0-50 StoreSale Clothes 8-Apr above 100 FatimaStore Shoes
0-50 StoreSale Clothes 8-Apr 0-50 DiscountWorld Clothes
51-100 CleanShop Clothes 4-Dec 51-100 BetterUncle Shoes
Итакздесь мне нужно применить горячее кодирование к pvf_cat
, как будто у меня есть множество других столбцов, для которых я создал список этих столбцов как str_cols
и вот как я применяю one-hot-encoding
:
for col in str_cols:
data = df[str(col)]
values = list(data)
# print(values)
# integer encode
label_encoder = LabelEncoder()
integer_encoded = label_encoder.fit_transform(values)
print(integer_encoded)
# one hot encode
encoded = to_categorical(integer_encoded)
print(encoded)
# invert encoding
inverted = argmax(encoded[0])
print(inverted)
onehot_encoder = OneHotEncoder(sparse=False)
integer_encoded = integer_encoded.reshape(len(integer_encoded), 1)
onehot_encoded = onehot_encoder.fit_transform(integer_encoded)
Но это не влияет на набор данных, когда я печатаю df.head()
, он все тот же, что здесь не так?