Я получаю сообщение об ошибке в блокноте Jupyter:
from sklearn.impute import SimpleImputer
imputer= SimpleImputer(missing_values = 'NaN', strategy = 'mean', axis= 0)
и моя ошибка
TypeError Traceback (most recent call last)
<ipython-input-128-9f8271dfdf3c> in <module>
1 from sklearn.impute import SimpleImputer
----> 2 imputer= SimpleImputer(missing_values = 'NaN', strategy = 'mean', axis= 0)
TypeError: __init__() got an unexpected keyword argument 'axis'
@amanb спасибо, я хочу позаботиться о пропущенных значениях, заменив
Документы охватывают это: scikit-learn.org/stable/modules/impute.html
Попробуй это:
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values= np.NAN, strategy= 'mean', fill_value=None, verbose=0, copy=True)
Почему это лучше? Что не так с оригинальным способом сделать это?
В SimpleImputer
параметр оси удален. В устаревшем классе Imputer
он использовался, чтобы указать, следует ли вводить значения по столбцам (axis=0
, по умолчанию) или по строкам (axis=1
). Судя по всему, эта дифференциация больше не поддерживается в новом классе SimpleImputer
. Немного информации об этом есть здесь:
https://github.com/scikit-learn/scikit-learn/issues/10636
Если вы вводите значения по столбцам (каким, кажется, является исходный постер), просто отбросьте параметр оси, и вы должны получить такое же поведение. Если вам нужно вменить по строкам, то я не знаю, какие еще варианты доступны. Я не мог найти ответ на этот вопрос с некоторыми поисками.
Из документы
SimpleImputer
не принимаетaxis
аргумент. Пожалуйста, укажите, чего именно вы пытаетесь достичь. Что такое постановка проблемы?