气象站点数据结构化处理

最近需要处理一批气象站点数据,数据是小时尺度的降水数据,时间跨度长,区域范围大,且由于拿到的气象站点是按时间为文件夹进行存储,举例即按照2022020119小时为文件单位存储所有站点该小时的降水量。后面研究需要针对每个站点的历时降水量进行分析,所以编写了小脚本进行数据的结构化处理。

import os
import pandas as pd


# 获取气象站点站号信息
df = pd.read_csv(r'E:\2020121123_prcp.txt', sep='\s+', header=None)
stations_num = df.loc[:,0]

# 读取历史数据文件
path = r'E:\total'
targetFilePath = r'E:\Pre'
files = os.listdir(path)    # 获取站点数据的文件信息
files.reverse()    #正序/逆序存储

# 通过站号遍历历史站点数据,将数据按照站点进行存储。
for station in stations_num:

    stationDir = targetFilePath + "\\" + str(station)

    with open(stationDir,'a+', newline='') as f:

        for file in files:
            sourceDir = path + '\\' + str(file)

            try:

                date = file.split(sep='_')[0]
                sourceFile = pd.read_csv(sourceDir, sep='\s+', header=None)
                line = sourceFile[sourceFile[0] == station]
                line.insert(loc=0, column='date', value=date)

                line.to_csv(f, sep='\t', header=False, index=False, na_rep='')

            except:

                info = pd.DataFrame([[date,'null','null','null','null','null','null']], columns=list(range(0,7)))
                info.to_csv(f, sep='\t', header=False, index=False)

            continue

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值