生蚝: (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-03 21:49:42 浏览: 92
pandas-0.21.1-cp36-cp36m-win-amd64.whl
我可以帮您解决关于Python的问题,但是您提出的问题涉及到数据处理和可视化,需要使用Python的相关库进行实现。以下是您提出的问题的解答:
(1)读取 PRSA_ data 2010.1.1-2014.12.31.csx 文件并查看前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)删除列 DEWP、TEMP、PRES、cbwd、Iws、Is、Ir,并将剩余列用 pandas 数据预处理模块将缺失值丢弃处理,并导出到新的 csv 文件 pm25_ data 2010.1.1-2014.12.31.csv。
```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 大于300的所有数据集,导出为文本文件 pm25_hazardous_data_2010.1.1-2014.12.31.txt。
```python
hazardous_data = data[data['pm2.5'] > 300]
hazardous_data.to_csv('pm25_hazardous_data_2010.1.1-2014.12.31.txt', sep=',', index=False, header=False, line_terminator='\n')
```
(4)将文本文件 pm25_hazardous_data_2010.1.1-2014.12.31.txt 转存到 Excel 文件 pm25_hazardous_data_2010.1.1-2014.12.31.xlsx。
```python
hazardous_data = pd.read_csv('pm25_hazardous_data_2010.1.1-2014.12.31.txt', header=None)
hazardous_data.to_excel('pm25_hazardous_data_2010.1.1-2014.12.31.xlsx', index=False, header=False)
```
(5)重新读取文本文件 pm25_hazardous_data_2010.1.1-2014.12.31.txt,分别统计出现最多的 month、day、hour,并将 month、day、hour 的出现频次用柱状图显示,并将结果保存为 png 图片保存,分辨率为 400 dpi,png 图片命名分别为 pm25_hazardous_month_day_hour.png。
```python
import matplotlib.pyplot as plt
hazardous_data = pd.read_csv('pm25_hazardous_data_2010.1.1-2014.12.31.txt', header=None, names=['year', 'month', 'day', 'hour', 'pm2.5'])
month_count = hazardous_data['month'].value_counts()
day_count = hazardous_data['day'].value_counts()
hour_count = hazardous_data['hour'].value_counts()
fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(15, 5))
month_count.plot(kind='bar', ax=ax1, color='r')
ax1.set_xlabel('Month')
ax1.set_ylabel('Frequency')
ax1.set_title('PM2.5 Hazardous Month Count')
ax1.set_xticklabels(month_count.index, rotation=0)
day_count.plot(kind='bar', ax=ax2, color='g')
ax2.set_xlabel('Day')
ax2.set_ylabel('Frequency')
ax2.set_title('PM2.5 Hazardous Day Count')
ax2.set_xticklabels(day_count.index, rotation=0)
hour_count.plot(kind='bar', ax=ax3, color='b')
ax3.set_xlabel('Hour')
ax3.set_ylabel('Frequency')
ax3.set_title('PM2.5 Hazardous Hour Count')
ax3.set_xticklabels(hour_count.index, rotation=0)
plt.savefig('pm25_hazardous_month_day_hour.png', dpi=400)
```
阅读全文