content_array = [tuple(row[:7]) for row in content[1:]] dtype = [('Date', object),('Location', object),('Operator', object),('Type', object),('Aboard', object),('Fatalities', object),('Summary', object)] content_name = np.array(content_array, dtype=dtype) content_name["Aboard"] = np.where(content_name["Aboard"] == '-', '0', content_name["Aboard"]).astype(float)出现错误content_name["Aboard"] = np.where(content_name["Aboard"] == '-', '0', content_name["Aboard"]).astype(float) ValueError: could not convert string to float: ''怎么处理
时间: 2023-07-15 10:13:51 浏览: 82
这个错误是由于无法将空字符串转换为浮点数导致的。可以使用以下代码来将空字符串替换为0:
```
content_name["Aboard"] = np.where(content_name["Aboard"] == '-', '0', content_name["Aboard"])
content_name["Aboard"] = np.where(content_name["Aboard"] == '', '0', content_name["Aboard"]).astype(float)
```
这将首先将“-”替换为空字符串,然后将所有空字符串替换为0,并将结果转换为浮点数。
相关问题
content_array = [tuple(row[:7]) for row in content[1:]] dtype = [('Date', object),('Location', object),('Operator', object),('Type', object),('Aboard', object),('Fatalities', object),('Summary', object)] content_name = np.array(content_array, dtype=dtype)出现作物content_name["Aboard"] = content_name["Aboard"].astype(float) ValueError: could not convert string to float: '-'怎么处理
这个错误是由于 content_name["Aboard"] 中的某些字符串包含了 '-',而无法转换为浮点型。你可以使用 numpy.where() 函数来处理这个问题,将字符串中的 '-' 转换为 '0':
```
import numpy as np
content_array = [tuple(row[:7]) for row in content[1:]]
dtype = [('Date', object),('Location', object),('Operator', object),('Type', object),('Aboard', object),('Fatalities', object),('Summary', object)]
content_name = np.array(content_array, dtype=dtype)
content_name["Aboard"] = np.where(content_name["Aboard"] == '-', '0', content_name["Aboard"]).astype(float)
```
这里使用了 numpy.where() 函数,第一个参数是判断条件,如果为真则返回第二个参数,否则返回第三个参数。所以当 content_name["Aboard"] 中的值为 '-' 时,就返回 '0',否则返回原来的值。最后将结果转换为浮点型即可。
阅读全文