Ошибка ::: ValueError: не удалось преобразовать строку в число с плавающей точкой: '28, 37 ' - PullRequest
1 голос
/ 10 мая 2019

Я пытался разместить логистическую регрессию на моих данных, но я получил эту ошибку ValueError: не удалось преобразовать строку в число с плавающей точкой: '28, 37 ' Мой код:

 X_train, X_test, y_train, y_test = train_test_split(X, y,
                                            stratify=y, 
                                            test_size=0.3)
 logisticRegr = LogisticRegression()
 logisticRegr.fit(X_train, y_train)
 predictions = logisticRegr.predict(X_test)

Как я могу решить это, пожалуйста ??1006*

Ответы [ 3 ]

2 голосов
/ 10 мая 2019

В строке указан неверный разделитель. Вы должны использовать . вместо ,.

Сравнить:

print(float('28,37'))

ValueError: не удалось преобразовать строку в число с плавающей точкой: '28, 37 '

Кому:

print(float('28.37'))

28,37

1 голос
/ 10 мая 2019

Как насчет?

df.column1=df.column1.str.replace(',', '.', regex=False)
df.column1 = df.column1.astype(float)

После того, как я проверил

  column0      column1
0    row0     179319,0
1    row1      89659,5
2    row2      59773.0
3    row3     44829,75
4    row4      35863.8
5    row5      29886.5
6    row6      25617,0
7    row7    22414.875
8    row8  19924.33333
  column0      column1
0    row0     179319.0
1    row1      89659.5
2    row2      59773.0
3    row3     44829.75
4    row4      35863.8
5    row5      29886.5
6    row6      25617.0
7    row7    22414.875
8    row8  19924.33333
0 голосов
/ 10 мая 2019

Проблема в том, что внутри строки есть ',', потому что вы не можете преобразовать строку типа "28,37" в число с плавающей точкой.Поэтому строка должна иметь вид «28,37»

print(float("28.37"))

28,37

...