编者语:
本期推送中,我们以“全国空气质量历史数据”为例,介绍直接从网上下载别人已经抓取下来的空气质量历史数据后,如何利用Python处理原始数据,以得到我们想要的数据形式。空气质量数据是现在大伙普遍比较关心的数据,在学术研究中,可以和环境污染问题、城市问题等等相联系,比如我们可以研究空气污染对限行、马拉松比赛、居民幸福感、情绪、政府治理等的影响,还可以利用空气质量数据研究对于城市房价、迁移、移民、旅游的影响等等。本期推送介绍的是爬取数据以后如何处理数据格式的部分。
在研究和环境污染相关的问题时,全国空气质量历史数据是我们经常会用到的数据。
在本期文章中,我们将会介绍直接从网上下载别人已经抓取下来的空气质量历史数据后,如何利用Python处理原始数据,以得到我们想要的数据形式。
下载地址是:http://beijingair.sinaapp.com
该网站可以下载自2014年5月13日以来的全国空气质量历史数据。
第一步:下载数据
我们以下载“全国空气质量数据”为例。
打开网页后,点击“全国空气质量数据百度网盘下载”。
然后,点击“全国空气质量”。
选择“城市_20180101-20180203.zip”进行下载,以获得全国城市2018/01/01-2018/02/03的空气质量历史数据。
第二步,打开数据
下载完成以后,我们打开解压缩后的文件夹“城市_20180101-20180203”,可以看到文件夹中有多个CSV文件,每一个CSV文件对应全国各城市每一日的空气质量数据。
打开一个CSV文件,我们可以看到有以下变量:
1.date:表示日期
2.hour:表示小时
3.type:表示污染物类型,包括AQI, PM2.5, PM10, SO2, NO2, O3, CO等污染物
我们看到第一行往右出现很多乱码,一个单元格的乱码应该是表示一座城市的中文名。
出现乱码的原因是编码不匹配,存储在CSV文件中的数据的编码是UTF-8,而Excel默认的编码是GB18030。
总结起来,我们要利用Python解决两个问题(以Python2.7为例):
1.为防止出现乱码,我们要以正确的编码形式打开数据
2.以date, hour, citychn, AQI, PM2.5, PM10, SO2, NO2, O3, CO这样的数据结构来显示数据,如下图所示。
第三步,处理数据
将py文件放在和空气质量历史数据所在的文件夹“城市_20180101-20180203”同一个目录下,如下图所示。
运行以下几行代码。
然后打开“df”这个变量,我们可以看到没有出现乱码。
接下来,我们要处理第二个问题,改变数据的结构。完整的代码如下。
打开“d”这个变量,显示如下。
可以看到,数据已经按照我们希望的结构来排列。我们已经成功利用Python处理了原始数据。
第四步,保存数据
这一步,我们要利用循环来自动处理和保存所有的CSV文件。
首先,我们在本地创建名为“2018年空气质量”的文件夹。
运行以下代码。
运行完以后,打开文件夹“2018年空气质量”。在该文件夹中,有Python处理和生成的新的CSV文件。
打开其中一个CSV文件,数据按照我们希望的结构显示。
至此,我们已经完成了利用Python处理和保存全国空气质量历史数据。
由于我们下载下来的原始数据结构是固定的,所以这段代码可以反复移植和重复利用,赶快试试吧!
关注并在后台直接回复“pm2.5”,我们将把本期推文中介绍的“下载和处理空气质量历史数据”的源代码,直接发送给您。
欢迎大家踊跃投稿,内容有关人文社会科学的即可,可以是学术前沿思想介绍、各种定量研究技术和方法介绍、各种软件(stata、Python、数据可视化等等)数据处理及分析技巧,可以是网络爬虫技巧,也可以是学术论文写作与发表等相关内容。
投稿要求:
1、务必原创、禁止抄袭;
2、务必准确、详细,有例子,有数据,有截图;
注意事项:
1、所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,我们会在推文里注明作者署名,并有稿酬提供;
2、邮件请注明投稿,邮件名为“投稿+推文名称+作者+联系方式”;
以人文之情怀
以学术为志业
···········
领取专属 10元无门槛券
私享最新 技术干货