Я создал функцию для замены отсутствующих значений на knn в Python, вот моя функция:
def missing_variables_knn(x):
test = data[data[x].isnull()]
train = data[data[x].isnull()==False]
X_train = train.loc[:, ['ApplicantIncome', 'CoapplicantIncome', 'LoanAmount', 'Loan_Amount_Term']]
Y_train = train[x]
X_test = test.loc[:, ['ApplicantIncome', 'CoapplicantIncome', 'LoanAmount', 'Loan_Amount_Term']]
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, Y_train)
pred = knn.predict(X_test)
pred = pd.Series(pred)
data[x].fillna(pred)
Когда я использовал missing_variables_knn('Gender')
, я получил ошибку:
Истинная ценность Серии неоднозначна.Используйте a.empty, a.bool (), a.item (), a.any () или a.all ().