(1) 用 pandas >取 pollution_us_Scity_2006_2010_NO2.csv 文件,奆着前5行、 后2仃。 (2)选择 2007 年数据集,将缺失值丢弃处理,并将预处理后结果导出到文本文件 polution_ us Sciry_ 2007 No2.txt,要求数据之问用空格分隔,每行未尾包含换行符。 (3)读取文本文件pollution_us_5cily_2007_ NO2.txt,统计总行数、总列数,并按照 County Code 降序排序,并将排序后结果导出为 CSV 文件 pollution_ us_ 5city_2007- NO2- descending.csvo (4)读取新的数据集 pollution_ us_ Scity_2007_ NO2_ descending.csv,利用 category=[0, 25, 50, 75, 100, 125, 150]# labels ['Good', 'Moderate', 'SubUnhealthy', 'Unhealthy', "Very Unhealthy, 'Hazardousl将 County--"Queens"的 NO2 AQI 迸行离散化,并根据离散化 结果进行统计,分别画出统计结果的柱状图和饼状图,并分别保存为 NO2_ AQI bar-png、 NO2_AQI pie.png,要求分率不低于 300 dpi。
时间: 2024-03-02 11:49:25 浏览: 69
Pandas之read_csv()读取文件跳过报错行的解决
好的,以下是代码实现:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 1.读取文件,输出前5行和后2行
df = pd.read_csv('pollution_us_Scity_2006_2010_NO2.csv')
print('前5行:')
print(df.head(5))
print('后2行:')
print(df.tail(2))
# 2.选择2007年数据集,将缺失值丢弃处理,并导出到文本文件
df_2007 = df[df['Date Local'].str.contains('2007')]
df_2007.dropna(inplace=True)
df_2007.to_csv('pollution_us_Scity_2007_NO2.txt', sep=' ', index=False, header=None, line_terminator='\n')
# 3.读取文本文件,统计总行数、总列数,并按照County Code降序排序,并导出为CSV文件
df_2007 = pd.read_csv('pollution_us_Scity_2007_NO2.txt', sep=' ', header=None)
print('总行数:', len(df_2007))
print('总列数:', len(df_2007.columns))
df_2007.sort_values(by=3, ascending=False, inplace=True)
df_2007.to_csv('pollution_us_5city_2007_NO2_descending.csv', index=False, header=None)
# 4.读取新的数据集,将County--"Queens"的NO2 AQI进行离散化,并绘制柱状图和饼状图
df_new = pd.read_csv('pollution_us_Scity_2007_NO2_descending.csv', header=None)
df_queens = df_new[df_new[2] == 'Queens']
bins = [0, 25, 50, 75, 100, 125, 150]
labels = ['Good', 'Moderate', 'SubUnhealthy', 'Unhealthy', 'Very Unhealthy', 'Hazardous']
df_queens['AQI'] = pd.cut(df_queens[4], bins=bins, labels=labels)
counts = df_queens['AQI'].value_counts()
plt.figure(figsize=(8, 6), dpi=300)
plt.bar(counts.index, counts.values)
plt.xlabel('AQI Category')
plt.ylabel('Counts')
plt.title('NO2 AQI in Queens, 2007')
plt.savefig('NO2_AQI_bar.png', dpi=300)
plt.figure(figsize=(8, 6), dpi=300)
plt.pie(counts.values, labels=counts.index, autopct='%1.1f%%', startangle=90)
plt.title('NO2 AQI in Queens, 2007')
plt.axis('equal')
plt.legend(title='AQI Category', loc='best')
plt.savefig('NO2_AQI_pie.png', dpi=300)
```
注意:以上代码需要先下载数据集`pollution_us_Scity_2006_2010_NO2.csv`,并放在当前工作目录下才能正常运行。
阅读全文