ValueError:无法将字符串转换为<module>()中的float <ipython-input-5-1a15d1ec0505>

时间:2019-05-30 20:26:38

标签: python jupyter-notebook

我正在尝试实现KNN,但是当我转换X_train和X_test却给出错误时,我是新手,请对此提供任何帮助。

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

它给出错误“无法将字符串转换为浮点数” 该怎么办?

1 个答案:

答案 0 :(得分:0)

当我看到这样的错误时,我要做的第一件事就是检查我的输入。如果出现“无法将字符串转换为浮点数”错误,则您的输入中可能包含非数字字符串(因为它看起来像此KNN函数仅将数字作为输入)。

我假设X_train和X_test是数据帧-尝试为数据帧中的每一列运行以下内容:

for i in range(len(X_train.columns)): 
    try:
        [float(j) for j in X_train[X_train.columns[i]]]
        print(X_train.columns[i],' is all-numeric')
    except:
        pass

运行时哪个列都不打印,这是您需要查看的列,以查看是否可以清除该列中的非数字条目。

编辑:如果只有一列非数字字符串(例如“ Iris-setosa”,“ Iris-versicolor”等),则必须将它们转换为数字或“虚拟变量”列KNN函数的作用。

编辑2:哎呀。我写了错误的代码。修复它。