Как вменять недостающие значения с помощью панд? - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь вменять пропущенные значения как среднее значение других значений в столбце;однако мой код не имеет никакого эффекта.Кто-нибудь знает, что я могу делать не так?Спасибо!

Мой код:

  from sklearn.preprocessing import Imputer
    imputer = Imputer(missing_values ='NaN', strategy = 
    'mean', axis = 0)
    imputer = imputer.fit(x[:, 1:3])
    x[:, 1:3] = imputer.transform(x[:, 1:3])
    print(dataset)

Выход

Country   Age   Salary Purchased
0   France  44.0  72000.0        No
1    Spain  27.0  48000.0       Yes
2  Germany  30.0  54000.0        No
3    Spain  38.0  61000.0        No
4  Germany  40.0      NaN       Yes
5   France  35.0  58000.0       Yes
6    Spain   NaN  52000.0        No
7   France  48.0  79000.0       Yes
8  Germany  50.0  83000.0        No
9   France  37.0  67000.0       Yes

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Вы можете сделать следующее, скажем, df это ваш набор данных:

from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values ='NaN', strategy = 'mean', axis = 0)

df[['Age','Salary']]=imputer.fit_transform(df[['Age','Salary']])

print(df)

   Country        Age        Salary Purchased
0   France  44.000000  72000.000000        No
1    Spain  27.000000  48000.000000       Yes
2  Germany  30.000000  54000.000000        No
3    Spain  38.000000  61000.000000        No
4  Germany  40.000000  63777.777778       Yes
5   France  35.000000  58000.000000       Yes
6    Spain  38.777778  52000.000000        No
7   France  48.000000  79000.000000       Yes
8  Germany  50.000000  83000.000000        No
9   France  37.000000  67000.000000       Yes
0 голосов
/ 28 декабря 2018

Вы присваиваете объект Imputer переменной imputer:

imputer = Imputer(missing_values ='NaN', strategy = 'mean', axis = 0)

Затем вы вызываете функцию fit() для вашего объекта Imputer, а затем функцию transform().

Затем вы печатаете переменную dataset, я не уверен, откуда она взялась.Вы хотели напечатать объект Imputer или результат одного из этих вызовов вместо этого?

...