我想对数据框应用滚动功能,如果当前值为nan,则返回nan;否则滚动窗口W将跳过 nan值并应用于 W non-nan 值。例如:
dft = pd.DataFrame({'B': [0, 1, 2, np.nan, 4, np.nan,5]},
index=range(7))
B
0 0.000000
1 1.000000
2 2.000000
3 nan
4 4.000000
5 nan
6 5.000000
对于窗口3的滚动平均值,所需的输出为:
B
0 nan
1 nan
2 1.000000
3 nan
4 2.333300
5 nan
6 3.666700
通知2.333是值的平均值(1,2,4),而3.667是值的平均值(2,4,5)。
其余的行为,例如min_window,和熊猫一样。
答案 0 :(得分:1)
尝试:
df['B'].dropna().rolling(3).mean().reindex(df.index)