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

如何在Pandas中计算排除中心值的居中滚动平均值?

在Pandas中计算排除中心值的居中滚动平均值

要实现排除中心值的居中滚动平均,核心思路是先计算滚动窗口内的总和与元素个数,再减去当前值并调整分母(排除自身),具体代码如下:

import pandas as pd

# 构造示例数据
data = {'Values': [13313, 12792, 20254, 34915, 31410, 36532, 36958, 35471, 33018, 38080, 44074, 54165]}
df = pd.DataFrame(data)

# 计算排除中心值的滚动平均
rolling_sum = df['Values'].rolling(window=11, center=True, min_periods=1).sum()
rolling_count = df['Values'].rolling(window=11, center=True, min_periods=1).count()
df['Expected'] = (rolling_sum - df['Values']) / (rolling_count - 1)

# 查看结果
print(df)

逻辑说明

  1. 滚动总和:用rolling.sum()获取窗口内所有元素的总和(包含中心值)
  2. 移除中心值:将总和减去当前行的Values,得到排除中心值后的总和
  3. 调整分母:用rolling.count()获取窗口内有效元素数量,减1后作为分母(排除自身)
  4. 计算平均值:用处理后的总和除以调整后的分母,得到目标结果

结果验证

运行上述代码后,生成的Expected列将与你提供的预期结果完全匹配:

ValuesExpected
1331327180.6
1279228897
2025428770.14286
3491527468.5
3141029037
3653230028.5
3695834071.1
3547136600.66667
3301838950.625
3808038804
4407439037.33333
5416537520.2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:12:57