生蚝: (1)用pandas 库读取 PRSA_ data 2010.1.1-2014.12.31.csx 文件,查看前3行、后2行。 (2) 刪除列 DEWP、TEMP、PRES、cbwd、Iws、Is、Ir,并将剰余列用 pandas 数据 预处理模块将缺失值丢弃处理,导出到新的csV 文件 pm25_ data 2010.1.1-2014.12.31.csv。 (3)利用pandas 库读取新的数据集 pm25_ data 2010.1.1-2014.12.31.csv,并选择字段 pm2.5 大子300 的所有数据集,昇出力文本文件 pm25_hazardous_data_2010.1.1-2014. 12.31.txt,要求数据之间用逗号分隔,每行末尾包含换行符。 (4)读取文本文件 pm25_hazardous_ data_ 2010.1.1-2014.12.31.txt 并转存到 Excel 文件 pm25_hazardous_data_ 2010.1.1-2014.12.31.xlsx # 生蚝: (5)重新读取文本文件读取文本文件 pm25_ hazardous_ data 2010.1.1-2014.12.31.txt,分别统计出现最多的month、 day、hour, 并将 month、 day、hour 的出现频次用柱状图显示。要求包括图例、图标题,xy轴均显示刻度值,柱状图填充颜色分别为红色、绿色、蓝色;并将结果保存为 png 图片保存,分辦率为 400 dpi,png 图片命名分别为 pm25 hazardous_ month_ day hour.png。
时间: 2024-03-14 16:43:33 浏览: 18
1. 使用pandas库读取PRSA_data_2010.1.1-2014.12.31.csv文件,查看前3行、后2行可以使用以下代码:
```python
import pandas as pd
data = pd.read_csv('PRSA_data_2010.1.1-2014.12.31.csv')
print(data.head(3)) # 查看前3行
print(data.tail(2)) # 查看后2行
```
2. 删除指定列并处理缺失值可以使用以下代码:
```python
data = data.drop(columns=['DEWP', 'TEMP', 'PRES', 'cbwd', 'Iws', 'Is', 'Ir'])
data = data.dropna() # 删除缺失值
data.to_csv('pm25_data_2010.1.1-2014.12.31.csv', index=False) # 导出为新的csv文件
```
3. 选择字段pm2.5并导出为文本文件可以使用以下代码:
```python
data = pd.read_csv('pm25_data_2010.1.1-2014.12.31.csv')
pm25 = data[data['pm2.5'] >= 300] # 选择pm2.5值大于等于300的数据
pm25.to_csv('pm25_hazardous_data_2010.1.1-2014.12.31.txt', index=False, header=False, sep=',', line_terminator='\n') # 导出为文本文件
```
4. 读取文本文件并转存为Excel文件可以使用以下代码:
```python
data = pd.read_csv('pm25_hazardous_data_2010.1.1-2014.12.31.txt', header=None, names=['pm2.5'])
data.to_excel('pm25_hazardous_data_2010.1.1-2014.12.31.xlsx', index=False) # 转存为Excel文件
```
5. 统计出现最多的month、day、hour并绘制柱状图可以使用以下代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('pm25_hazardous_data_2010.1.1-2014.12.31.txt', header=None, names=['pm2.5'])
# 统计month、day、hour的出现频次
month_count = data.groupby(data.index.month)['pm2.5'].count()
day_count = data.groupby(data.index.day)['pm2.5'].count()
hour_count = data.groupby(data.index.hour)['pm2.5'].count()
# 绘制柱状图
fig, ax = plt.subplots(figsize=(10, 6))
ax.bar(month_count.index, month_count.values, color='red', label='Month')
ax.bar(day_count.index, day_count.values, color='green', label='Day')
ax.bar(hour_count.index, hour_count.values, color='blue', label='Hour')
ax.legend()
ax.set_xlabel('Time')
ax.set_ylabel('Frequency')
ax.set_title('PM2.5 Hazardous Data')
ax.set_xticks(range(1, 13))
ax.set_xticklabels(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])
plt.savefig('pm25_hazardous_month_day_hour.png', dpi=400) # 保存为png图片
plt.show()
```