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

在PyCaret时间序列中创建12个月MA列出现全NA值该如何解决

原因说明

  • 这不是PyCaret版本的问题,属于pandas滑动窗口计算的正常逻辑:rolling(12).mean()默认要求窗口内存在12个非空值才会返回计算结果,你展示的是数据集前5行,还没有凑够12个连续数据点,所以前11行的MA12列天然就是NaN值。
  • 还有一种可能是列名不匹配:你使用AirPassengers数据集时,乘客数的列名是Passengers,如果直接照搬教程里的data['variable']写法,调用不存在的列也会返回全NaN结果。

解决方法

  • 先核对代码里的列名,确保你做滑动计算的列是实际存在的数值列,比如用AirPassengers数据集时要写成:
    data['MA12'] = data['Passengers'].rolling(12).mean()
    
  • 如果你希望前几行也能输出计算结果,可以调整滑动窗口的最小观测数参数:
    # min_periods=1代表窗口内只要有至少1个有效值就计算
    data['MA12'] = data['Passengers'].rolling(12, min_periods=1).mean()
    
  • 如果你是要完全复现教程流程,前11行的NaN属于正常情况,直接运行后续代码即可,PyCaret回归模块会自动处理数据中的缺失值,不会影响后续建模。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:00:04