• 2019年安徽省黄山与湖北省武汉空气质量的数据分析


    这两周我在慕课和b站上学习了一些关于python数据分析的方法,所以想借此次大作业的机会展示一下学习的成果。这时候我就想到可不可以分析一下我家乡黄山一年的空气质量呢?这时我又想到了武汉,自从我考入hg,武汉也就成为了我的第二个家了。所以说我想对这两个美丽的城市一年以来的空气质量做个数据分析。好的,那就走起!

    我的简单思路

    1、数据分析首先第一步就是要获得数据,而且应该是要有一定量的数据,这样做出的结果才具有一定的说服性。讲到的数据的获取,我们马上就可以想到我们最近刚学的一个方法,那就是——python爬虫。(但是本人现在水平很有限,复杂网页爬取下来就不知道如何处理了,所以就选择了简单的网页进行数据的爬取),在数据爬取过程中还用的一个新的第三方库pandas库,不过也就是其中的一些简单用法。

    2、数据爬取之后便是数据的存储和读取,之后便就是对数据做一定的处理,目的就是要得到我们数据分析所需要的数据。最后就是用matplotlib库对数据进行可视化处理,使数据变得更加形象直观,让读者一目了然。

    个人历程(一把辛酸泪)

    首先我想先爬取黄山一个月的空气质量数据来看看效果如何,若这一步成功了就可以进行到多个网页数据的爬取,获取足够的数据以便之后的数据分析。代码和效果如下:

    看起来是成功了,下面就可以进行下一步了。这里想讲一下那个lxml是一个网页解析器,性能比html.parser会好些,但是需要下载,用下载python第三方库的方法就可以进行下载。

    而且我也用了pandas库对数据进行了一些简单的处理,让数据看起来更加美观。

    接下来我就要对多个网页进行爬取,上面我做的是一个月的数据爬取。而我的想法是一年还是两个城市的,这样就应该要爬取24个网页,如果是复制每个网页的地址的话会非常麻烦。但很幸运的是,我找了网页的规律,比如2019年12月、11月黄山的网页地址是http://www.tianqihoubao.com/aqi/huangshan-201912.html,http://www.tianqihoubao.com/aqi/huangshan-201911.html。可以发现变的只有数字,而且前面是城市的小写拼音,若是武汉应该地址总应该是wuhan。找到规律之后就可以通过一个函数来进行数据爬取。数据爬取成功后,我就要将数据储存起来。储存之后就可以读取数据,然后对数据进行必要处理,得到画图所要的数据,再用matplotlib库进行数据可视化。第一次尝试(一个月的数据分析)代码和效果如下(代码因为失败,所以就没有全截图下来)

                     

    可以看到虽然我做出了一个图标,但是横坐标过于密集,看起来很难受,原因是我是以日期为横坐标导致的,所以如果以月来作为横坐标应该会看起来会舒服多,效果也会更好些。代码修改如下:

        

    这样效果会好多了。好的黄山市一年的空气质量AQI数据可视化成功后,接下来就是对武汉一天空气质量数据进行分析,并且将这两个城市放在一起进行效果比对。同时设置坐标轴标签和标题副标题,让图表效果更好,让人感觉一目了然,代码和效果如下:

    从这张图就可以看出黄山一年的空气质量相较于武汉更好些,同时两个城市在夏季的空气质量AQI数据都较低,说明夏季的空气质量较好。

    这时我又想分四个季度对黄山一年PM2.5的情况进行数据分析,这时候四个季度再用这样的折线图效果不好,这时我就想到用饼图效果会更好些。那就继续加油干!

    代码效果如下:

     

                           

    可以看到我用到了一个块状突出强调了第三季度黄山市PM2.5平均值最小,其次就是第三季度。因此从上面的几个图表中可以看出,我的家乡黄山市整体一年的空气质量是很不错的,AQI在50以下(空气质量为优秀)的月份很多,而且PM2.5也比较小,尤其是夏季和秋季,最重要的是黄山也是全国文明的景区,所以我强烈推荐大家假期和家人有旅游计划的,不妨考虑一下我这边的黄山景区哈哈哈!

    个人总结:

    首先是收获,感谢此次大作业提供的机会,让我学到了关于数据分析的很多新用法,比如pandas库的一些使用和matplotlib库绘制不用形状的图表等等。此次大作业可以说是这几次大作业中任务量最大,也是最困难的一次,但是做成之后的成就感也是最大的,我也认识到了matplotlib库巨大的实用性,也激发了我继续学习的热情。通过学习慕课和b站上提供的数据分析课程,我感受到了python数据分析这一块的知识非常丰富且复杂,而我此次所用到仅仅是一些皮毛而已,更多的知识还有待我后续的探索学习。本人也是水平很有限,当时的想法很大,但实施起来也是遇到了很多困难,耗费的精力很大,一时间也不知如何解决,最后也只能是做出了简化版。理想很美好,现实总是很骨感。不过还是学习到了很多。最后就是可能此次数据量有些大了,所以在程序运行过程中耗时很大,对我程序的修正和编写造成了不小的影响,所以我想请教一下有没有同学有更好的python进行数据分析的工具,有的话希望可以告诉我一下非常感谢。

    好的,以上就是我此次大作业的所有内容。不足之处,请多多批评指正。

  • 相关阅读:
    Collections.unmodifiableMap,Collections.unmodifiableList,Collections.unmodifiableSet作用及源码解析
    Mybatis源码解析,一步一步从浅入深(五):mapper节点的解析
    Mybatis源码解析,一步一步从浅入深(四):将configuration.xml的解析到Configuration对象实例
    Mybatis源码解析,一步一步从浅入深(三):实例化xml配置解析器(XMLConfigBuilder)
    Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码
    Cannot find class: com.mysql.jdbc.Driver错误及解决办法。
    Mybatis源码解析,一步一步从浅入深(一):创建准备工程
    Maven 创建项目之简单示例
    常用注解记录
    jmeter性能测试工具
  • 原文地址:https://www.cnblogs.com/pythonyx/p/12846268.html
Copyright © 2020-2023  润新知