一、概述
本次分析所要处理的数据表格是2006-2010 年美国五个著名城市纽约(New York)、华盛顿(Washington)、休斯顿(Houston)、洛杉矶(Los Angeles)、费城(Philadelphia)的空气中一氧化碳(CO)污染情况,主要分析城市纽约的CO污染情况。
CO 污染物有 5 个专栏:CO 单位(CO Unites):测量 CO 的单位;CO 平均值(CO Mean):给定日内 CO 浓度的算术平均值;CO 第一最大值(CO 1st Max Value):给定日期的 CO 浓度的最大值;CO 第一最大值时间:(CO 1st Max Hour):给定日期的 CO 浓度的最大值所处的时间;CO AQI:一天内 CO 计算的空气质量指数。
原始数据在
二、流程图
程序的大致流程图如下:

三、流程的具体分析
0.整体结构
首先,整体上设置一个循环结构。以便运行时能够按指令运行代码或退出。整体框架代码如下:

 def main():while True:menu()choice = input("请选择:").strip()if choice == '1':elif choice == '2':  elif choice == '3':elif choice == '4':else:print("已退出。")breakif __name__ == '__main__':main()

1.设置菜单。
将流程图中需要完成的数据处理任务以字符串形式放入菜单中,定义一个menu()函数,在程序运行之初打印菜单,以供选择需要处理数据的部分和方式。
指令菜单包括:
1.读取数据前五行和后两行 (任务一)
2.数据预处理 (任务一)
3.数据CO Mean导出并可视化 (任务二、三)
4.数据CO AQI导出并可视化 (任务四、五)
5.退出
2.数据查看和预处理。(任务一)
定义main()函数,其中包含菜单的打印。引入pandas库,读取数据文件。按照任务要求进行查看前五行和后两行。

df=pd.read_csv('5.pollution_us_5city_206_2010_co.csv')
print(df.head(5))
print(df. loc[53218:53220])

数据的预处理即除去表格中缺失值,以使数据具有真实性。

df=df.dropna()               #将缺失值丢弃。
print(df)
df.to_csv('pollution_new.csv')   #剩余数据存入新文件。

3.筛选数据,画关于CO Mean折线图。(任务二、三)
读取新文件中的数据后,导出纽约市相关需要分析的数据,命名为新文件。

df2 = df.loc[df['City'] == 'New York']     #导出纽约市数据。df3 = df2.drop(['ID','State Code','County Code','Site Num','Address','State','County','CO Units','CO 1st Max Value','CO AQI','Unnamed: 0'],axis=1)
df3.to_csv('pollution_us_NewYork_2006_2010_CO.txt',index=0)   #导出为新文件。

筛选出时长为20对应数据。

df = df.loc[eval("df['CO 1st MaxHour']") == 20]     #筛选出最大时长为20的数据。
df.to_csv('pollution_us_NewYork_2006_2010_CO.scv')   #该段时间的数据存入文件。

引入matplotlib库,设置折线图性质,画出折线图。

import matplotlib.pylab as pl
import matplotlib.pyplot as plt       #引入matplotlib库。
x = df_num['all']
y = df_num['CO Mean']        #x、y的含义。
pl.plot(x,y,label='CO Mean',color='red')pl.xlabel('Year',fontsize=18)pl.ylabel('CO Mean',fontsize=18)plt.xticks(range(0,50,8))     #设置起始和坐标间距。
pl.title('Change curve of CO Mean with years',fontsize=24)   #标题。
pl.legend()           #图例。
pl.show()             #绘图。

4.筛选并排序数据,画关于CO AQI的饼状图。(任务四、五)
读取预处理后的文件,筛选出所需数据。

df = df.dropna()
df.to_csv('pollution_new.csv')
df =pd.read_csv('pollution_new.csv')
df2 = df.loc[df['City'] == 'New York']    df3 = df2.drop(['ID','State Code','County Code','Site Num','Address','State','County','CO Units','CO 1st Max Value','CO Mean','CO 1st Max Hour','Unnamed: 0'],axis=1)

运用内置函数sort将数据按AQI大小降序排列并输出。

df = df3.sort_values(by='CO AQI',ascending=False)

输出为新的Excel文件,读取文件。将数据按category = [0, 5, 10, 15,20,25,30]和 labels = [‘Good’, ‘Moderate’, ‘SubUnhealthy’, ‘Unhealthy’, ‘VeryUnhealthy’, ‘Hazardous’]将 CO AQI 进行离散化。

df = df['CO AQI']
category = [0,5,10,15,20,25,30]
df_AQI = pd.cut(df,category)
pd.cut(df,category,right=False)
labels = ['Good','Moderate','SubUnhealthy','Unhealthy','VeryUnhealthy','Harzardous']
df_AQI = pd.cut(df,category,right=False,labels=labels)
pd.cut(df,7)print("数据已按要求离散化。")

将离散化后的数据进行统计,计算每种标签的占比。

df_series =df_AQI.value_counts(normalize=True)
print(df_series)
df_series.values.tolist()

设置饼状图的规格和颜色等性质,将数据按比例化成饼状图。

labels =['Good','Moderate','SubUnhealthy','Unhealthy','VeryUnhealthy','Harzardous']
colors =('red','blue','yellow','green','pink','purple')
explode = (0,0,0,0,0,0)
fig = plt.figure(num=1,figsize=(5,5),dpi=310,facecolor='white')     ax = fig.gca()       ax.pie(df_series,explode=explode,labels=labels,colors=colors,pctdistance=0.8,                   autopct='%1.1f%%',shadow=True,startangle=90,radius=4,center=(0,0),counterclock=False)  #设置饼状图规格。      ax.set_xticks([0,3])
ax.set_yticks([0,3])
plt.show()

四、结果分析
1.CO Mean 数据结果分析


单看各个年份内,CO平均值的数据波动较大,可见纽约市的空气CO含量随时间推移波动大,但每年内基本持平。整体来看,CO含量的多年均值从0.55左右下降至0.4左右,但每年的峰值基本不变。可见从2006至2010年间,纽约空气中污染物CO含量总体呈下降趋势,空气质量略有转好,但间歇性出现CO含量高。
2.CO AQI 数据结果分析

标签 占比
Good 0.723987
Moderate 0.1309320
SubUnhealthy 0.124759
Unhealthy 0.015949
VeryUnhealthy 0.004116
Harzardous 0.000257

通过查阅百度百科:发现AQI分为六级,值越大,空气质量越差,计算时按照如下方式:各种污染物的AQI值分别算出来后,取数值最大的那个即为最终报告的AQI值。
观察饼状图得CO良好程度污染(Good)的天数占比最大,高达72%,中等程度(Moderate)污染次之,约占13%,其后对应标签天数由大到小的分别是较健康(SubUnhealthy)、不健康(Unhealthy)、非常不健康(VeryUnhealthy)、危险(Harzardous)。可见CO污染程度良好和中等天数的和占到85%以上,所以纽约就CO这一空气观测指标而言,空气质量较好,质量良好的天数占比很高。

所处理原始数据表格如下
https://share.weiyun.com/Vx8XlhF6

2006-2010年美国纽约市空气中一氧化碳污染情况分析相关推荐

  1. 计算机信息课堂教育形势分析,信息技术在教学中的应用情况分析

    田鸽 摘 要 今后的学习,应该是教师的教与学生的学的有机结合,不应该是教师在课堂上简单的教学资源的再现,而应该是教师的教育与学生资源再现的综合利用,是一种更有效地教育信息的传递,利用信息技术的优越性, ...

  2. 2010年美国计算机图书市场Part1

    2010年美国计算机图书市场 本报告的作者是O'Reilly公司的Mike Hendrickson.Mike连续多年撰写美国计算机图书市场分析报告,并在O'Reilly Radar上发布(http:/ ...

  3. 史密斯探测证实,BioFlash可检出空气中的SARS-CoV-2变异株,包括德尔塔和德尔塔+

    其他新出现变异株的检测正在确认当中 伦敦--(美国商业资讯)--威胁检测和安全筛查技术的全球领导者史密斯探测(Smiths Detection)今天证实,其空气采样器BioFlash®能检出多种SAR ...

  4. 从空气中直接采集DNA!eDNA技术有了新突破

    热点追踪 / 深度探讨 / 实地探访 / 商务合作 文章来源:雷锋网  文章作者:付静  文章编辑:Ocean DNA,是生物体发育和正常运作必不可少的.携带遗传信息的生物大分子. 即便是两个没有血缘 ...

  5. 计算机音乐组获奖作品,浙传王俊老师的电子音乐作品入选2019国际计算机音乐大会(ICMC)暨2019美国纽约市电子音乐节!...

    原标题:浙传王俊老师的电子音乐作品入选2019国际计算机音乐大会(ICMC)暨2019美国纽约市电子音乐节! 喜讯!浙江传媒学院音乐学院艺术科技系青年教师王俊作品入选2019国际计算机音乐大会(ICM ...

  6. 扬尘天气在家如何防护措施 家里空气中的沙尘怎么处理

    扬尘天气在家如何防护措施 家里空气中的沙尘怎么处理 大风起兮尘飞扬 风越强来,天越黄-- 随沙尘而来的还有呼呼呼的大风 刚刚过了一周 "阳光正好,微风不燥"的日子 还没好好感受春花 ...

  7. 饱和气压与温度的关系_不同温度下空气中饱和水分含量及饱和蒸汽压

    不同温度下空气中饱和水分含量及饱和蒸汽压 温度℃ 饱和水分含量g/m3 饱和蒸汽压Pa 温度℃ 饱和水分含量g/m3 饱和蒸汽压Pa 40 50.91 7368.624 -12 1.81 217.38 ...

  8. Python已成美国顶尖高校中最受欢迎的入门编程语言

    在最近的一份调查中显示,美国top高校中,Python已经成为教授计算机科学入门课程方面最受欢迎的语言.其中Top10 CS系中有8所使用Python,Top39 CS系中有24所,在入门课程中教授P ...

  9. 收发一体超声波测距离传感器模块_空气中70KHZ超声波换能器传感器探头DYA-70-03A测距探头3米量程...

    空气中70KHZ超声波换能器传感器探头DYA-70-03A测距探头3米量程 CT50数字式超声波探伤仪 焊缝探伤测量仪器 金属探伤检测仪 现货,上海身高体重秤 超声波身高体重秤 全自动身高体重称测量仪 ...

最新文章

  1. build怎么调试 react_GitHub - bozhouyongqi/debug-react: 本地调试react源码环境
  2. 仿微信的网络聊天室项目开发【完整源码讲解,Java一年工作经验面试题
  3. python编程例子 输入 输出-推荐 :手把手教你用Python创建简单的神经网络(附代码)...
  4. 为什么声明性编码使您成为更好的程序员
  5. 查找树的指定层级_阿里面试,问了B+树,这个回答让我通过了
  6. CSS基础「三」盒子模型/产品模块案例/圆角边框/盒子阴影/文字阴影
  7. java 设置请求超时时间_java设置http请求超时时间
  8. jsZip上传,jsZip压缩文件并上传到服务器
  9. 网站后台测试软件,WebCrack:网站后台弱口令批量检测工具
  10. CSS属性—居中对齐篇
  11. php sqlite并发访问,PHP基于文件锁实现sqlite的并发操作
  12. Maya测量尺寸python脚本Mesh Resizer
  13. mac+微信打开连接到服务器,MAC OS系统 ,微信接收到的文件,打开wo… - Apple 社区...
  14. 读取文件夹下同类型文件的文件名并排序
  15. Matplotlib二维箭头图
  16. 论文的实施计划怎么写?
  17. 【C#】WPF实现经典纸牌游戏,适合新手入门
  18. java 电话号码 打号_java电话号码怎么匹配?
  19. 提高抗打击能力_如何提高心理承受能力或者抗打击能力?
  20. NOJ1055叙拉古猜想——水题

热门文章

  1. android微信风格,微信主题太过简单?教你一键设置,多种风格自由切换
  2. php实现图片的翻滚,css实现图片滚动 - 我是希希呀的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. 6.3【字符数组编程】假定输入的字符串中只包含字母和*号。请编写子函数实现:除了字符串前导的*号之外,将串中其他*号全部删除。
  4. PPT、Word文档、Excel表格 免费模板资源
  5. 大数据征信,核心是对大数据的搜集与挖掘
  6. android app源码大全_[源码和文档分享]基于Android的家庭学校联系平台APP开发与实现...
  7. windows系统流氓软件太厉害卸载不掉怎么办?看我弄死它们
  8. 黑马程序员--C语言基础之--变量、内部函数与外部函数
  9. PC电脑端常见蓝屏代码自检测与解决方案
  10. Myeclipse各版本下载地址