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

如何对Pandas滚动窗口DataFrame执行i/10权重的移动加权计算

实现方法

直接结合rolling.apply与预定义权重数组即可完成需求,具体实现如下:

  • 预定义长度为10的权重数组,元素依次为1/10到10/10,和窗口内每个位置的权重一一对应
  • 对Values列开启大小为10的滚动窗口,每个窗口内的元素和权重逐位相乘求和,即可得到对应位置的加权结果,前9个位置自动返回空值NaN

完整代码示例:

import pandas as pd
import numpy as np

# 构造示例DataFrame
values = [4,6,4,8,13,20,2,4,3,6,5,8,2,5,7, 20, 5, 6 , 7, 9, 20 , 5, 3, 5, 20, 4, 10, 2]
example = pd.DataFrame({'Values' : values})

# 定义匹配窗口位置的权重
weights = np.arange(1, 11) / 10

# 执行滚动加权计算
example['weighted_result'] = example['Values'].rolling(10).apply(lambda window: (window * weights).sum())

# 输出验证结果
print(example)

计算结果验证:第10个位置(索引为9,从0开始计数)的输出为37.8,和你给出的手动计算结果完全一致,后续位置的计算逻辑也符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:36:04