在标准化处理一组比较大的数据,但是数据组中存在一些字符串导致报错
#标准化处理数据,数据是在Excel中读取出来的,x是二维数组
x_scaled = preprocessing.scale(x)
y_scaled = preprocessing.scale(y)
#报错
ValueError: could not convert string to float: 'Intf Shut'
因此我需要把数组中的字符串剔除,用剩下的数据进行数据处理。
我能想到的解决思路是遍历整个数组,找出并删除字符串,字符串在数组二维内部,不知道怎么去筛查,刚接触编程还在入门阶段,写不出自己想实现的效果,希望能得到点拨。
a = [[1, 2, 'a'], [2, 3, 'b'], [3, 4, 'c']]
for i in range(len(a)):
for j in range(len(a[i])):
if type(a[i][j]) == str:
a[i].pop(j)
print(a)
希望这段代码能对你有帮助
list类型 isinstance(object,classinfo)判断object是否属于classinfo类型 注意删除后i-1
dataframe类型 df['temp'] = df['temp'].astype(int)
通过在线翻译得知报错原因如下:
ValueError: could not convert string to float 发生这个错误的通常原因都是:要转换成浮点数的字符串中包含 非数字字符 的东西,比如空字符串、字母都不可以转换为浮点数。
1.检查一下自己的字符串内容,注意里面是否有换换行符 \n,制表符 \t 或空字符串 ‘ ’
如果有,请删除!
2.调用的文件中数据格式是否正确,特别是Excel及txt文件,容易出现额外的“ ”,要把它们删去程序才可以正常运行!
如有帮助,还请采纳!谢谢!