python读取csv文件并转为字典,字典的键是float类型,值是二维数组
时间: 2023-06-26 21:05:52 浏览: 381
可以使用Python内置的csv模块来读取csv文件,并将其转换为字典。以下是一个示例代码:
```python
import csv
# 读取csv文件
with open('example.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
next(reader) # 跳过标题行
data = {}
for row in reader:
key = float(row[0])
value = [[float(x) for x in row[1:4]], [float(x) for x in row[4:7]]]
data[key] = value
print(data)
```
在上面的代码中,我们使用`csv.reader`函数逐行读取csv文件。由于第一行通常是标题行,我们使用`next`函数跳过。然后,我们遍历每一行数据,将第一列转换为浮点数,并将其作为字典的键。接下来,我们将第二到第七列的值转换为浮点数,并将其存储在一个二维数组中,作为字典的值。最后,我们将键值对添加到字典中。
相关问题
从任一网站爬取温度相关数据,将最后一天数据是否下雨作为目标,其他数据作为特征。要求: 1. 自己写程序爬取,要求包含最后一天是否下雨,等至少5个字段 2. 将数据存储为csv,并能够读取为二维数组(结构化) 3. 使用该数据集创建两个数组,分别是目标变量和特征变量,输出其值。
在Python中,我们可以使用`requests`库来抓取网页内容,然后通过如`BeautifulSoup`解析HTML提取所需信息。`pandas`库则可以方便地处理CSV文件并转换成二维数组。下面是一个基本的步骤说明:
1. **安装必要的库**:
如果你还没有安装`requests`, `beautifulsoup4`, 和 `pandas`,可以使用pip进行安装:
```
pip install requests beautifulsoup4 pandas
```
2. **编写爬虫函数**:
```python
import requests
from bs4 import BeautifulSoup
import csv
def get_weather_data(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 根据实际页面结构找到需要的信息元素
temp_data = soup.find('div', class_='temperature') # 示例:查找温度部分
rain_data = soup.find('span', class_='rain-status') # 查找降雨状态部分
# 提取其他字段...
# 将数据保存到字典中
data_dict = {
'temp': float(temp_data.text), # 温度字段
# ...,
'rain_status': bool(rain_data.text) if rain_data else None, # 是否下雨字段
# ...,
}
return data_dict
# 爬取特定日期的数据
url = "http://example.com/weather-date" # 需要替换为你想要爬取的网站地址
last_day_data = get_weather_data(url)
```
3. **保存数据**:
将抓取到的数据写入CSV文件:
```python
with open('weather_data.csv', 'w', newline='') as csvfile:
fieldnames = ['temp', 'field_2', ..., 'rain_status'] # 所有字段名
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writerow(last_day_data)
# 读取CSV文件为二维数组
df = pd.read_csv('weather_data.csv')
data_array = df.values # 获取二维数组
```
4. **创建目标变量和特征变量**:
```python
target = data_array[:, -1] # 目标变量(最后一列)
features = data_array[:, :-1] # 特征变量(除最后一列外的所有列)
```
现在你已经完成了上述任务,可以根据需要进一步分析或模型训练。
阅读全文