Как насчет использования Label Encoder?
from sklearn.preprocessing import LabelEncoder
data = ['Light Rain', 'Overcast', 'Cloudy', 'Snow']
lencoder = LabelEncoder()
encoded = lencoder.fit_transform(data)
print(encoded)
Обратное преобразование будет выглядеть следующим образом:
inverted = lencoder.inverse_transform([0])
print(inverted)
Надеюсь, это было полезно.
PS: Также, если вы заинтересованы взглянуть на один горячий кодер;