ValueError:无法将字符串转换为float:'no'

时间:2020-07-12 23:28:01

标签: python pandas jupyter-notebook

在对某些银行数据实施Logistic回归时,我遇到错误 ValueError:无法将字符串转换为float:'no'。 这是我到目前为止尝试过的代码。

bank_full=pd.read_csv("/home/bilal/Desktop/linkedinlearning/recommendation-system-python/bank/bank-full.csv")
bank_full.head()

X=bank_full.iloc[:,:37].values 
y=bank_full.iloc[:,:18].values
Logreg=LogisticRegression()
Logreg.fit(X,y) #ERROR HERE.

enter image description here

3 个答案:

答案 0 :(得分:1)

听起来您的数据中有一个值,该值应该是数字,但实际上是一个名为“ no”的字符串。在将数据从字符串转换为浮点数之前,也许可以对数据进行快速检查。

答案 1 :(得分:1)

此错误意味着您数据中的某些行不包含有效的浮动数据,特别是包含字符串no的行。

我建议使用for循环遍历您的数据以检查哪些行是导致错误的行,如下所示:

for i in data:
    try:
        i = float(i)
        print(i)
    except:
        print("Invalid data.")

答案 2 :(得分:1)

如果您使用的是“银行营销数据集”,则目标(y)值将编码为“是”和“否”。您可以执行以下操作:

bank.loc[bank.y == "yes", 'subscribe'] = 1
bank.loc[bank.y == "no", 'subscribe'] = 0