2006-2010年美国纽约市空气中一氧化碳污染情况分析
一、概述
本次分析所要处理的数据表格是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年美国纽约市空气中一氧化碳污染情况分析相关推荐
- 计算机信息课堂教育形势分析,信息技术在教学中的应用情况分析
田鸽 摘 要 今后的学习,应该是教师的教与学生的学的有机结合,不应该是教师在课堂上简单的教学资源的再现,而应该是教师的教育与学生资源再现的综合利用,是一种更有效地教育信息的传递,利用信息技术的优越性, ...
- 2010年美国计算机图书市场Part1
2010年美国计算机图书市场 本报告的作者是O'Reilly公司的Mike Hendrickson.Mike连续多年撰写美国计算机图书市场分析报告,并在O'Reilly Radar上发布(http:/ ...
- 史密斯探测证实,BioFlash可检出空气中的SARS-CoV-2变异株,包括德尔塔和德尔塔+
其他新出现变异株的检测正在确认当中 伦敦--(美国商业资讯)--威胁检测和安全筛查技术的全球领导者史密斯探测(Smiths Detection)今天证实,其空气采样器BioFlash®能检出多种SAR ...
- 从空气中直接采集DNA!eDNA技术有了新突破
热点追踪 / 深度探讨 / 实地探访 / 商务合作 文章来源:雷锋网 文章作者:付静 文章编辑:Ocean DNA,是生物体发育和正常运作必不可少的.携带遗传信息的生物大分子. 即便是两个没有血缘 ...
- 计算机音乐组获奖作品,浙传王俊老师的电子音乐作品入选2019国际计算机音乐大会(ICMC)暨2019美国纽约市电子音乐节!...
原标题:浙传王俊老师的电子音乐作品入选2019国际计算机音乐大会(ICMC)暨2019美国纽约市电子音乐节! 喜讯!浙江传媒学院音乐学院艺术科技系青年教师王俊作品入选2019国际计算机音乐大会(ICM ...
- 扬尘天气在家如何防护措施 家里空气中的沙尘怎么处理
扬尘天气在家如何防护措施 家里空气中的沙尘怎么处理 大风起兮尘飞扬 风越强来,天越黄-- 随沙尘而来的还有呼呼呼的大风 刚刚过了一周 "阳光正好,微风不燥"的日子 还没好好感受春花 ...
- 饱和气压与温度的关系_不同温度下空气中饱和水分含量及饱和蒸汽压
不同温度下空气中饱和水分含量及饱和蒸汽压 温度℃ 饱和水分含量g/m3 饱和蒸汽压Pa 温度℃ 饱和水分含量g/m3 饱和蒸汽压Pa 40 50.91 7368.624 -12 1.81 217.38 ...
- Python已成美国顶尖高校中最受欢迎的入门编程语言
在最近的一份调查中显示,美国top高校中,Python已经成为教授计算机科学入门课程方面最受欢迎的语言.其中Top10 CS系中有8所使用Python,Top39 CS系中有24所,在入门课程中教授P ...
- 收发一体超声波测距离传感器模块_空气中70KHZ超声波换能器传感器探头DYA-70-03A测距探头3米量程...
空气中70KHZ超声波换能器传感器探头DYA-70-03A测距探头3米量程 CT50数字式超声波探伤仪 焊缝探伤测量仪器 金属探伤检测仪 现货,上海身高体重秤 超声波身高体重秤 全自动身高体重称测量仪 ...
最新文章
- build怎么调试 react_GitHub - bozhouyongqi/debug-react: 本地调试react源码环境
- 仿微信的网络聊天室项目开发【完整源码讲解,Java一年工作经验面试题
- python编程例子 输入 输出-推荐 :手把手教你用Python创建简单的神经网络(附代码)...
- 为什么声明性编码使您成为更好的程序员
- 查找树的指定层级_阿里面试,问了B+树,这个回答让我通过了
- CSS基础「三」盒子模型/产品模块案例/圆角边框/盒子阴影/文字阴影
- java 设置请求超时时间_java设置http请求超时时间
- jsZip上传,jsZip压缩文件并上传到服务器
- 网站后台测试软件,WebCrack:网站后台弱口令批量检测工具
- CSS属性—居中对齐篇
- php sqlite并发访问,PHP基于文件锁实现sqlite的并发操作
- Maya测量尺寸python脚本Mesh Resizer
- mac+微信打开连接到服务器,MAC OS系统 ,微信接收到的文件,打开wo… - Apple 社区...
- 读取文件夹下同类型文件的文件名并排序
- Matplotlib二维箭头图
- 论文的实施计划怎么写?
- 【C#】WPF实现经典纸牌游戏,适合新手入门
- java 电话号码 打号_java电话号码怎么匹配?
- 提高抗打击能力_如何提高心理承受能力或者抗打击能力?
- NOJ1055叙拉古猜想——水题
热门文章
- android微信风格,微信主题太过简单?教你一键设置,多种风格自由切换
- php实现图片的翻滚,css实现图片滚动 - 我是希希呀的个人空间 - OSCHINA - 中文开源技术交流社区...
- 6.3【字符数组编程】假定输入的字符串中只包含字母和*号。请编写子函数实现:除了字符串前导的*号之外,将串中其他*号全部删除。
- PPT、Word文档、Excel表格 免费模板资源
- 大数据征信,核心是对大数据的搜集与挖掘
- android app源码大全_[源码和文档分享]基于Android的家庭学校联系平台APP开发与实现...
- windows系统流氓软件太厉害卸载不掉怎么办?看我弄死它们
- 黑马程序员--C语言基础之--变量、内部函数与外部函数
- PC电脑端常见蓝屏代码自检测与解决方案
- Myeclipse各版本下载地址