计算滚动(平均差)^2 pandas

Calculate the rolling (mean difference)^2 pandas

您好,我正在尝试使用 3 天滚动平均值在数据框中创建一个 'mean difference squared' 列。

明智的结果我想从上到下获得具有以下值的第 3 列(NaN、NaN、26、8、8、8),例如 26 计算为 (1-5)^2 + ( 6-5)^2 + (8-5)^2,均方值8开始(6-8)^2....以此类推。

我已经写了前两行代码,不知道如何写更多的代码才能达到预期的效果。任何帮助表示赞赏。

df = pd.DataFrame({'Data':[1, 6, 8, 10, 12, 14]})
df['mean'] = df.rolling(window=3).mean()
df['mean difference_squared'] = ........

你的情况

df.Data.rolling(window=3).apply(lambda x : sum((x-x.mean())**2),raw=True)
Out[173]: 
0     NaN
1     NaN
2    26.0
3     8.0
4     8.0
5     8.0
Name: Data, dtype: float64