python - 如何修复“ValueError:无法将字符串转换为浮点数”
问题描述
我将根据我拥有的 x 数据帧和 y 系列训练一个 SVM。X数据框如下所示:
X:
Timestamp Location of sensors Pressure or Flow values
0.00000 138.22, 1549.64 28.92
0.08333 138.22, 1549.64 28.94
0.16667 138.22, 1549.64 28.96
在 X 数据框中,传感器的位置以节点坐标的形式表示。Y系列如下图:
是:
0
0
0
但是当我将 svm 拟合到训练集时,它返回了 ValueError:could not convert string to float: '361.51,1100.77'
并且 (361.51, 1100.77) 是节点的坐标。你能给我一些想法来解决这个问题吗?如果有任何建议,非常感谢。
解决方案
我假设您正在尝试将整个字符串“361.51,1100.77”转换为浮点数,您可以看到为什么这是一个问题,因为 Python 看到两个小数点和一个逗号,所以它不知道该怎么做。假设您希望数字分开,您可以执行以下操作:
myStr = "361.51,1100.77"
x = float(myStr[0:myStr.index(",")])
y = float(myStr[myStr.index(",")+1:])
print(x)
print(y)
这会给你一个输出
361.51
1100.77
将 x 指定为myStr[0:myStr.index(",")]
从 1 到第一次出现逗号的原始字符串的子字符串,得到第一个数字。
将 y 分配为myStr[myStr.index(",")+1:]
从第一个逗号开始到字符串末尾的原始字符串的子字符串,得到第二个数字。
两者都可以使用该方法轻松地从此处转换为浮点数,从而为float(myStr)
您提供两个单独的浮点数。
这是了解字符串切片的有用链接:https ://www.geeksforgeeks.org/string-slicing-in-python/
推荐阅读
- c++ - 具有 emplace-mechanisms 的 stdlib 类应该是友好的吗?
- arrays - 如何识别 Swift 数组中特定值的连续出现?
- uno-platform - 如何将类库项目添加到 Uno-Platform?
- asp.net-mvc - 为 ASP.NET MVC 5 项目设计更复杂的数据库
- java - 是否可以强制转换方法?
- swift - 插入的模型看起来比预期的大并且在相机的背面
- python - 使用 Keras 的慢 DQN
- python - 如何将具有每日收益的数据框转换为从 100 开始的数据框索引
- c - TCP/IP 流转储任意簇中的文本(C 套接字编程)
- python - 如何在小复杂度模型(LBCNN)上解决 Pytorch “CUDA out of memory”