ValueError: не удалось преобразовать строку в float: 'нет' - PullRequest
0 голосов
/ 13 июля 2020

При внедрении Logisti c Регрессия для некоторых банковских данных я столкнулся с ошибкой 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.

введите описание изображения здесь

Ответы [ 3 ]

1 голос
/ 13 июля 2020

Эта ошибка означает, что в ваших данных есть строки, которые не содержат действительных данных с плавающей запятой, в частности строка, содержащая строку no.

Я бы предложил использовать for l oop на l oop поверх ваших данных, чтобы проверить, какие строки вызывают ошибку, как показано ниже:

for i in data:
    try:
        i = float(i)
        print(i)
    except:
        print("Invalid data.")
1 голос
/ 13 июля 2020

Если вы используете набор банковских маркетинговых данных, целевые значения (y) кодируются как «да» и «нет». Вы можете сделать что-то вроде этого:

bank.loc[bank.y == "yes", 'subscribe'] = 1
bank.loc[bank.y == "no", 'subscribe'] = 0
1 голос
/ 13 июля 2020

Похоже, у вас есть значение в ваших данных, которое должно быть числом, но на самом деле это строка с именем «нет». Быстро проверьте данные, прежде чем преобразовывать их из строк в числа с плавающей запятой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...