You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas计算日数据的气候态距平并实现反归一化?

Pandas计算气候态距平与反归一化实现

一、计算气候态距平

要实现每个时间戳对应DOY均值的匹配并计算距平,利用Pandas的map方法即可快速关联DOY与均值,步骤如下:

  1. 计算各年积日(DOY)的气候态均值:
# 按DOY分组计算sig列的均值,得到每个DOY的气候态基准
doy_mean = gpi_data.groupby(gpi_data.index.dayofyear)['sig'].mean()
  1. 为原始数据匹配对应DOY的均值并计算距平:
# 利用时间索引的dayofyear属性,映射到对应的DOY均值
gpi_data['doy_mean'] = gpi_data.index.dayofyear.map(doy_mean)

# 计算距平:原始值减去对应DOY的气候态均值
gpi_data['sig_anomaly'] = gpi_data['sig'] - gpi_data['doy_mean']

比如2007-01-02的DOY是2,会自动匹配到doy_mean中值为-8.693721的条目,计算出距平为-8.963545 - (-8.693721)。

二、预测距平的反归一化

如果有模型输出的距平数据gpi_data_predicted,将其与对应DOY的气候态均值相加,即可还原为原始尺度的预测值:

  1. 为预测数据匹配对应DOY的均值:
# 同样通过时间索引的dayofyear映射气候态均值
gpi_data_predicted['doy_mean'] = gpi_data_predicted.index.dayofyear.map(doy_mean)
  1. 反归一化计算最终预测值:
# 距平值加上气候态均值,得到原始尺度的预测结果
gpi_data_predicted['sig_predicted'] = gpi_data_predicted['anomaly_predicted'] + gpi_data_predicted['doy_mean']

注:如果预测数据没有时间索引,而是直接存储了DOY列,只需将index.dayofyear替换为['doy']即可完成映射。

内容的提问来源于stack exchange,提问作者Xu Shan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 04:52:41