前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Python批量提取指定的站点空气质量数据

使用Python批量提取指定的站点空气质量数据

作者头像
bugsuse
发布2020-12-16 11:50:21
1.3K0
发布2020-12-16 11:50:21
举报
文章被收录于专栏:气象杂货铺气象杂货铺

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

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

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

targets就是你指定的想提取的站点,想提取谁就指定谁,就输入谁的站点代号就可以啦,整体代码如下:

代码语言:javascript
复制
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之类的)的数据

OK,先到这里。

最后,感谢各位的关注和支持!我们在记录自己的同时,也希望对您的研究工作有一定的帮助!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 气象杂货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档