Используйте inverse_transform
из LabelEncoder
и OneHotEncoder
:
import pandas as pd
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
s = pd.Series(['a', 'b', 'c'])
le = LabelEncoder()
ohe = OneHotEncoder(sparse=False)
s = le.fit_transform(s)
s = ohe.fit_transform(s.reshape(-1,1))
print(s)
Что у вас есть:
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
Что вы должны сделать:
inv_s = ohe.inverse_transform(s)
inv_s = le.inverse_transform(inv_s.astype(int).ravel())
inv_s
Вывод:
array(['a', 'b', 'c'], dtype=object)