python - 用系列替换 Pandas 数据框中的空值

标签 python pandas

我在 Python 中创建了一个用 knn 替换缺失值的函数,以下是我的函数:

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') 时,出现错误:

The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

最佳答案

图书馆需要一个永远真实的值(value)。使用您的功能,您不能保证您将始终返回 true。这就是 Pandas 将其解释为模棱两可的原因。

你应该做的是使用其他函数,如.filter()。这里有一个相关的帖子:https://stackoverflow.com/questions/36921951/truth-value-of-a-series-is-ambiguous-use-a-empty-a-bool-a-item-a-any- o / 36922103

最稳妥的是错误在这里:train = data[data[x].isnull()==False]

关于python - 用系列替换 Pandas 数据框中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50774864/

相关文章:

python - 当 Pandas 图中的重叠条具有不同的宽度时,它们并不完全居中

python - Pandas:根据多列从数据框中删除观察结果

python - Pandas Series.apply 不能由字符串组成

python - 如何在 GridSearchCV 中评估分类器的准确性并生成留一的 roc 曲线?

python - 按行中的值平均 python pandas

python - 如何将列内容解压到由单元格值确定的新列

python - Pandas 数据框在列中舍入值

python - 如果 len(list) 不能被 3 整除,则排除函数中的最后一项。 python 2.7.1

python - 箱线图网格

python - 将多个未对齐的数据帧合并为单个 Pandas 数据帧