当我们计算出来SPEI指数,按照《气象干旱等级》需要对干旱发生的系数进行统计,但是面对很多个气象站,已经不能用手动来统计干旱发生的次数的时候,我们应该用到编程去统计,把统计的结果输出到一个表中。具体代码见:
import pandas as pd
# 读取Excel文件
df = pd.read_excel(r'D:\tongji\统计干旱次数.xlsx')
# 定义函数来判断干旱等级
def drought_level(spei):
if spei <= -2.0:
return '极端干旱'
elif -2.0 < spei <= -1.5:
return '严重干旱'
elif -1.5 < spei <= -1.0:
return '中等干旱'
elif -1.0 < spei <= -0.5:
return '轻度干旱'
else:
return '无干旱'
# 将V列筛选出来
station_columns = df.columns[2:]
# 创建一个空字典来存储每个气象站的干旱等级计数
drought_counts = {station: {'轻度干旱': 0, '中等干旱': 0, '严重干旱': 0, '极端干旱': 0, '无干旱': 0} for station in station_columns}
# 遍历数据框的每一行
for index, row in df.iterrows():
year = row['year']
month = row['month']
for station in station_columns:
spei = row[station]
level = drought_level(spei)
drought_counts[station][level] += 1
# 将结果转换为数据框
result_df = pd.DataFrame(drought_counts).T
# 将结果输出到新的Excel文件
result_df.to_excel(r'D:\tongji\干旱统计结果.xlsx')
接下来,让我们逐行解析一下这个代码: