Python计算权重累积降水量WAP
原始数据跟上一篇一样
计算公式如图:
公式解析:
实则就是当前的降水量一列,前一个月的降水量a的二次方×p2一列,这两列错位相加。
#!usr/bin/env python # -*- coding:utf-8 -*- """ @author: Su @file: calculateWAP.py @time: 2023/05/17 @desc: """ # python实现对Excel某一列乘以某个常数,结果存放在另一个单元格中 import pandas as pd import math #读取数据 data = pd.read_excel('processdata/datas/rainmonth.xlsx',sheet_name='50525') #提取rain用于WAP计算 rain = data["rain"].values #进行WAP公式计算 WAP1 = 0.85 * rain WAP2 = math.pow(0.85,2)*rain #第一列第二行加第二列第一行 a = WAP1[1:] b = WAP2[:383] print(data.head()) #错位相加 WAP3 = a + b print(WAP3) # 将结果保存到文件 OUT = pd.DataFrame([WAP1, WAP2, WAP3], index = ['WAP1','WAP2','WAP3']).T OUT.to_excel(r'processdata/datas/WAP.xlsx', index = False)
因为会涉及最后两列对不上所以取了这个
WAP2[:383]
此方法较为愚蠢 实际可以写个循环,但是这次懒得试了以后可以用用:
for i in range(len(df)-1): df.loc[i,'新列名'] = df.loc[i+1,'第一列列名'] + df.loc[i,'第二列列名']