Рассчитать скользящую (среднюю разницу) ^ 2 панды - PullRequest
1 голос
/ 10 июля 2019

Привет! Я пытаюсь создать столбец «средняя разница в квадрате» в кадре данных, используя скользящее среднее значение за 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'] = ........

1 Ответ

1 голос
/ 10 июля 2019

В вашем случае

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
...