错误::: ValueError:无法将字符串转换为float:'28,37'

时间:2019-05-10 11:23:10

标签: python pandas dataframe logistic-regression

我尝试对数据进行逻辑回归,但出现此错误 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)

请问如何解决??

3 个答案:

答案 0 :(得分:2)

字符串中的分隔符错误。您应该使用.而不是,

比较:

print(float('28,37'))
  

ValueError:无法将字符串转换为float:'28,37'

收件人:

print(float('28.37'))
  

28.37

答案 1 :(得分:1)

怎么样?

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

答案 2 :(得分:0)

问题是字符串内的',',因为您无法将“ 28,37”之类的字符串转换为浮点型。因此该字符串应为“ 28.37”

print(float("28.37"))
  

28.37