Рассчитайте прокатку (средняя разница) ^ 2 панды

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

person Novice Python charmer    schedule 09.07.2019    source источник


Ответы (1)


В твоем случае

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
person BENY    schedule 09.07.2019