重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Python怎么制作提取指定站点的空气质量数据

这篇文章主要介绍“Python怎么制作提取指定站点的空气质量数据”,在日常操作中,相信很多人在Python怎么制作提取指定站点的空气质量数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么制作提取指定站点的空气质量数据”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联建站长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为柏乡企业提供专业的做网站、成都做网站柏乡网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

前言

对于我们下载的多数数据集,我们可能需要提取其中指定的来使用,比如这个空气质量数据集,全国那么多站点,我只想要我研究的区域的站点数据,然而,当我打开文件夹的时候,失望了,因为这些数据都是一个一个的csv文件。有一个方法就是excel可以用脚本把这些单独的csv合并为一个csv,但可能伴随的问题就是数据超出excel的存储上限,so,我们换一种做法提取指定站点的数据

这次实验用到的数据是全国2014-2020年的站点空气质量数据,每小时的分辨率的,截图看看长什么样子:

Python怎么制作提取指定站点的空气质量数据

要是一个一个的打开去提取自己需要的,那会疯掉的,So,上神器--Python来完成这次实验操作

targets就是你指定的想提取的站点,想提取谁就指定谁,就输入谁的站点代号就可以啦

整体代码如下:

import os
import pandas as pd


# 定义相关参数
dataPath = './data' # 数据目录
targets = ['1001A','1002A','1003A','1004A','1005A','1006A','1007A','1008A'] # 目标站点
result = [[] for i in range(len(targets))] # 用于保存结果


# 开始遍历
for filepath in os.listdir(dataPath): # 遍历每个文件夹
    for filename in os.listdir('%s/%s'%(dataPath,filepath)):
        if not filename.endswith('.csv'): # 去重非csv数据文件
            continue
        data = pd.read_csv('%s/%s/%s'%(dataPath,filepath,filename))
        for i in range(0,len(data),15):
            for k in range(len(targets)):
                try:
                    item = {'date':data['date'][i], # 日期
                            'hour':data['hour'][i]} # 小时
                    for j in range(i,i+15):
                        item[data['type'][j]] = data[targets[k]][j]
                    result[k].append(item)
                except:
                    pass
        print('%s处理完毕'%filename)
            
# 保存结果
for i in range(len(targets)):
    pd.DataFrame(result[i]).to_csv('%s.csv'%targets[i],index=False)

Run,启动就可以运行,结果输入是这几个站点的csv数据,里面包含了所记录的时间范围的所有要素(比如PM10之类的)的数据

到此,关于“Python怎么制作提取指定站点的空气质量数据”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


网站栏目:Python怎么制作提取指定站点的空气质量数据
标题路径:http://cqcxhl.com/article/jggihd.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP