gpt4 book ai didi

python - Pandas-如何计算前滚 10/后滚 10 平均绝对偏差?

转载 作者:行者123 更新时间:2023-12-01 09:25:36 24 4
gpt4 key购买 nike

我一直在阅读有关rolling() 函数的文档,但我似乎找不到一种同时合并前向和后向窗口的方法。我想要做的是计算前 10 个和过去 10 个事件的平均绝对偏差(甚至标准偏差)以进行异常值分析。

我能够通过执行以下操作以一种黑客的方式计算前/过去 10 的平均值

df = pd.DataFrame({ 'date': pd.date_range(start='1/1/2017', end='12/31/2017'),
'value': np.random.rand(365)})

first_10 = df.rolling(window=10, win_type='triang')['value'].mean().shift().reset_index()

last_10 = df[::-1].rolling(window=10, win_type='triang')['value'].mean().shift().reset_index()

然后

pd.merge(first_10, last_10, on = ['level_1']).set_index(['level_1']).mean(axis=1)

但是因为您不能仅对两个 MAD 进行平均来获得该窗口的 MAD,所以我无法这样做。有谁有更可靠的方法来使用滚动函数进行这样的计算?感觉必须使用某种移位功能。

感谢对此的帮助。

最佳答案

你可以做这样的事情

mad = lambda x: np.fabs(x - x.mean()).mean()

s.rolling(window=60).apply(mad, raw=True).plot(style='k')

来自 Pandas documentation

关于python - Pandas-如何计算前滚 10/后滚 10 平均绝对偏差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50420686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com