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

如何使用前3个值的滚动均值填充Pandas DataFrame中rate列的缺失值

嘿,这个需求不难实现!我来给你一步步拆解怎么用Pandas完成rate列缺失值替换为前3个值滚动均值的操作:

实现思路

核心就是利用Pandas的滚动窗口计算和缺失值填充两个功能:

  • 用rolling(window=3)创建一个向前滚动的窗口,窗口大小为3,对应“前3个值”的要求
  • 用mean()计算每个窗口的均值,设置min_periods=1确保即使窗口里有效数据不足3个,也能正常计算均值(避免出现新的缺失值)
  • 最后用fillna()把原列的NaN替换成计算好的滚动均值

完整代码

import pandas as pd
import numpy as np

# 初始化你给出的原始DataFrame
df = pd.DataFrame({
    'id': [1,2,3,4,5],
    'rate': [0.5,0.4,0.5,np.nan,np.nan],
})

# 计算窗口为3的滚动均值,min_periods=1处理边界情况
rolling_avg = df['rate'].rolling(window=3, min_periods=1).mean()

# 用滚动均值填充rate列的缺失值
df['rate'] = df['rate'].fillna(rolling_avg)

# 输出结果
print(df)

期望输出

运行代码后,你会得到如下结果:

id      rate
0   1  0.500000
1   2  0.400000
2   3  0.500000
3   4  0.466667  # 前3个值(0.5+0.4+0.5)/3的计算结果
4   5  0.450000  # 前3个有效数值(0.4+0.5)/2的计算结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 06:48:12