Python计算多站点多年权重累积降水量WAP

之前计算过单站点的WAP,现在计算多站点的WAP

数据样子直接参考上几次的文章

直接上代码:

复制代码
#!usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: Su
@file: getWAP.py
@time: 2023/07/27
@desc:
"""
import pandas as pd
import math

# 打开excel文件
df = pd.read_excel('processdata/lianxi/鄂尔多斯.xlsx')
# 初始化空列表为了把wap数据写入excel,避免excel总是仅得出最后一个数的情况
temp = []
# 给站点分类
nameList = set(df.name.values)

# 先写个循环进行站点分类,再提取rain值进行WAP计算
for i in nameList:
    # 进行站点遍历
    dfName = df[df['name'] == i]
    # print(dfName)
    #df2 = pd.DataFrame()
    # 提取rain值
    rain = dfName.rain.values
    # 进行WAP公式计算
    WAP1 = 0.85 * rain
    WAP2 = math.pow(0.85, 2) * rain
    # 创建dataframe
    WAP1 = pd.DataFrame(WAP1)
    WAP2 = pd.DataFrame(WAP2)
    # 第一列第二行加第二列第一行
    mvWAP1 = WAP1.shift(-1)
    itWAP = mvWAP1 + WAP2
    WAP = itWAP.shift()


    # 创建一个新DataFrame放入分类好后的站点数据
    df2 = pd.DataFrame(dfName)
    # 把计算好的WAP值放入df2新增第一列
    df2.insert(loc=0, column='WAP1', value=WAP1.values)
    df2.insert(loc=1, column='WAP2', value=WAP2.values)
    df2.insert(loc=2, column='WAP', value=WAP.values)
    # print(df2)
    # 将循环出来的结果,按站点名字一个一个的写入excel
    temp.append(df2)
    # 整合DataFrame列表里的数据,进行纵向拼接
    rdf= pd.concat(temp,axis=0)
    rdf.to_excel('processdata/lianxi/鄂尔多斯WAP.xlsx')
复制代码

 

posted @   秋刀鱼CCC  Views(366)  Comments(0Edit  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示