Почему fit_transform всегда кодирует 'sex' как 0? - PullRequest
0 голосов
/ 22 февраля 2020

Почему мой fit_transform не работает?

Вот мой код:

import numpy as np
import pandas as pd
from sklearn.preprocessing import OrdinalEncoder
# my stats
my_age=25
my_sex='male'  

# Creating a row with my stats  
my_dataset = pd.DataFrame(np.array([[my_age, my_sex, 0]]),columns=['age', 'sex', 'sex_encoded'])  

print(my_dataset)    
my_dataset[['sex_encoded']]=OrdinalEncoder().fit_transform(my_dataset[['sex']])       
print(my_dataset)

Вот результаты:

  age   sex sex_encoded
0  25  male           0
  age   sex sex_encoded
0  25  male           0

По какой-то причине OrdinalEncoder () .fit_transform не выполняет никакого преобразования в «секс». Т.е. независимо от того, что я установил для my_sex, конечный результат всегда равен 0.

Куда я иду не так?

1 Ответ

1 голос
/ 22 февраля 2020

Это то, что вы ищете?

import numpy as np
import pandas as pd
from sklearn.preprocessing import OrdinalEncoder
my_age=25
my_sex='male'  

#Creating a row with my stats  
my_dataset = pd.DataFrame(np.array([[my_age, my_sex, 0],[23, 'female', 0],[25, 'male', 0]]),columns=['age', 'sex', 'sex_encoded'])  
#print(my_dataset)

my_dataset['sex_encoded'] = OrdinalEncoder().fit_transform(my_dataset[['sex']])
print(my_dataset)
...