【问题标题】:ValueError: could not convert string to float: 'no'ValueError:无法将字符串转换为浮点数:“否”
【发布时间】:2021-04-30 16:42:52
【问题描述】:

在对一些银行数据实施逻辑回归时,我遇到了一个错误ValueError: could not convert string to 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.

【问题讨论】:

  • 请将错误信息粘贴为文本,以便阅读和搜索。

标签: python pandas jupyter-notebook


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    此错误表示您的数据中有一些行不包含有效的浮点数据,特别是包含字符串no 的行。

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

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

    【讨论】:

      【解决方案3】:

      如果您使用的是银行营销数据集,则 target(y) 值被编码为“是”和“否”。你可以这样做:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-23
        • 2018-06-13
        • 2013-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-04
        相关资源
        最近更新 更多