(3)读取文本文件pollution_us_5city_2007_NO2.txt,统计总行数、总列数,并按照CountyCode 降序排序,并将排序后结果导出为cSV文件pollution_us_5city_2007_NO2_descending.csv。 (4)读取新的数据集 pollution_us_5city_2007_NO2_descending.csv,利用category=[0,25,50, 75, 100, 125, 150]和 labels=['Good','Moderate','SubUnhealthy','Unhealthy','VeryUnhealthy,'Hazardous]将County=="Queens"的NO2AQI进行离散化,并根据离散化结果进行统计,分别画出统计结果的柱状图和饼状图,并分别保存为NO2_AQI_bar.png、NO2_AQI pie.png,要求分辨率不低于300dpi。
时间: 2023-12-10 22:42:47 浏览: 168
(3)代码实现:
```python
import pandas as pd
# 读取文件
data = pd.read_csv('pollution_us_5city_2007_NO2.txt', delimiter='\t')
# 统计总行数和总列数
num_rows, num_cols = data.shape
print(f"总行数:{num_rows},总列数:{num_cols}")
# 按照CountyCode降序排序
data_sorted = data.sort_values(by=['County Code'], ascending=False)
# 导出为CSV文件
data_sorted.to_csv('pollution_us_5city_2007_NO2_descending.csv', index=False)
```
(4)代码实现:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取文件
data = pd.read_csv('pollution_us_5city_2007_NO2_descending.csv')
# 离散化
bins = [0, 25, 50, 75, 100, 125, 150]
labels = ['Good', 'Moderate', 'SubUnhealthy', 'Unhealthy', 'VeryUnhealthy', 'Hazardous']
data_Queens = data[data['County'] == 'Queens']
data_Queens['NO2_AQI'] = pd.cut(data_Queens['NO2 AQI'], bins=bins, labels=labels)
# 统计结果并画图
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(12, 6))
# 柱状图
data_Queens_counts = data_Queens['NO2_AQI'].value_counts()
data_Queens_counts.plot(kind='bar', ax=ax1)
ax1.set_xlabel('AQI等级')
ax1.set_ylabel('数量')
ax1.set_title('Queens NO2 AQI离散化统计')
# 饼状图
data_Queens_counts.plot(kind='pie', ax=ax2, autopct='%1.1f%%', startangle=90, counterclock=False)
ax2.set_title('Queens NO2 AQI离散化比例')
# 保存图片
plt.savefig('NO2_AQI_bar.png', dpi=300)
plt.savefig('NO2_AQI_pie.png', dpi=300)
plt.show()
```
注意:在离散化的时候要注意选取合适的区间和标签,使得离散化结果具有可读性和实用性。在画图的时候,可以使用Matplotlib库的子图功能将两个图像放在同一个窗口中,也可以分别保存为不同的图片。
阅读全文