import pandas as pd # 使用 pandas 读取 CSV 文件并转换数据类型 data = pd.read_csv('boston_housing_data.csv') # 统计每一列低于平均值的数目 num_below_avg = [0] * len(data[0]) #num_below_avg = [0 for _ in range(len(data[0]))] for row in data: for i, value in enumerate(row): if float(value) < sum(map(float, row))/len(row): num_below_avg[i] += 1 # 打印每一列低于平均值的数目 for i, num in enumerate(num_below_avg): print(f"Column {i}: {num} values below average") Traceback (most recent call last): File "D:/pythonProject2_resnet/venv/help1.py", line 17, in <module> if float(value) < sum(map(float, row))/len(row): ValueError: could not convert string to float: '.'这个错误怎么解决
时间: 2024-03-29 15:35:41 浏览: 18
这个错误是因为读取的数据中有一个或多个值是空白的,而在尝试将其转换为浮点数时出错了。为了避免这个错误,可以在转换之前先判断该值是否为空白值,例如:
```
for i, value in enumerate(row):
if value.strip() != '':
if float(value) < sum(map(float, row))/len(row):
num_below_avg[i] += 1
```
在这里,使用 `strip()` 函数删除字符串前后的空格,然后判断字符串是否为空白值,如果不为空,则转换为浮点数并进行比较。
相关问题
import pandas as pd # 使用 pandas 读取 CSV 文件并转换数据类型 data = pd.read_csv('boston_housing_data.csv') # 统计每一列低于平均值的数目 num_below_avg = [0] * len(data[0]) #num_below_avg = [0 for _ in range(len(data[0]))] for row in data: for i, value in enumerate(row): if float(value) < sum(map(float, row))/len(row): num_below_avg[i] += 1 # 打印每一列低于平均值的数目 for i, num in enumerate(num_below_avg): print(f"Column {i}: {num} values below average")
这段代码的作用是读取一个CSV文件(`boston_housing_data.csv`),然后统计该文件中每一列低于平均值的数目,并输出结果。具体来说,该代码使用 `pandas` 库读取CSV文件,然后使用循环遍历每一行数据,对于每一行数据,使用 `enumerate` 函数获取每一个元素的下标和值,然后通过 `map` 函数将每一行的数据转换为浮点数,计算该行数据的平均值,如果某个元素小于该行数据的平均值,则将该元素所在列的计数器加一。最后,代码使用循环遍历每一列计数器的值,并输出结果。
需要注意的是,该代码中使用的 `data[0]` 是错误的,应该使用 `data.columns` 来获取数据集的列名。
pandas读取boston_house_prices数据集
好的,可以使用以下代码读取boston_house_prices数据集:
```python
import pandas as pd
# 读取数据集
df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data',
header=None, sep='\s+')
# 设置列名
df.columns = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD',
'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV']
# 显示前5行数据
print(df.head())
```
注意:`header=None` 表示数据集没有列名,需要手动设置;`sep='\s+'` 表示数据集是以空格为分隔符的,需要进行分隔。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)