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

预测值的滚动均值填充逻辑在2025-07-01后失效求助

问题分析与解决方案

失效原因

当前代码的核心问题在于:

  • 你先将Predicted对应的ratio设为nan,然后直接对整个列计算滚动均值填充。当2025年7月1日后出现连续的Predicted行时,滚动窗口内会没有足够的非nan值(即Actual的ratio),导致滚动均值也变成nan,无法完成填充。
  • 默认的rolling窗口会包含当前行,但当前行是nan,连续多轮后窗口内全是nan,即使min_periods=1也无有效值可用。

修正代码

要实现「仅基于最近7个Actual值的滚动均值填充Predicted行」,需要先分离Actual值计算滚动均值,再映射到Predicted位置:

import pandas as pd
import numpy as np

# 1. 提取仅包含Actual值的ratio序列,Predicted位置设为nan
actual_ratio = df['ratio'].where(df['Actual_v_Predicted'] == "Actual")

# 2. 计算基于Actual值的滚动7期均值(仅用之前的Actual值,min_periods=1确保至少1个值就计算)
rolling_mean = actual_ratio.rolling(window=7, min_periods=1).mean()

# 3. 填充:Actual行保留原值,Predicted行用滚动均值
df['ratio'] = np.where(df['Actual_v_Predicted'] == "Predicted", rolling_mean, df['ratio'])

额外验证点

  • 确认你的数据是按时间升序排序的,否则滚动窗口会计算错误的历史值。
  • 如果2025年7月1日后的Actual值本身缺失,需要先补充Actual的原始数据,否则滚动均值会持续为nan。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:05:57