gpt4 book ai didi

python-3.x - 如何构建基于时间的 EWMA

转载 作者:行者123 更新时间:2023-12-02 23:57:36 25 4
gpt4 key购买 nike

我正在计算基于时间的 EWMA,定义如下:

地点:

在以下示例数据框 df 上:

index      time       x
0 1 5
1 1.3 4
2 1.4 8
3 2.8 3

例如,在时间 3:

我知道在Python中我们可以使用df['ewma'] = df['x'].ewm(alpha = c)来计算简单的ewma,但是这里c 只能是固定 float 。

我的问题是:如何处理更改参数 c?我可以递归地迭代整个 df 来获得答案,但它看起来确实很简单。

关于如何解决这个问题有什么建议吗?预先感谢您!

最佳答案

使用shift()

如果我没看错的话,基本上你需要时间[x]和时间[x-1]来解决你的问题。

只需创建一个新列:

df['time_prev'] = df['time'].shift(1)


print(df)

index time x time_prev
0 0 1.0 5 NaN
1 1 1.3 4 1.0
2 2 1.4 8 1.3
3 3 2.8 3 1.4

然后您可以使用 time_prev 作为计算中的前一个值。例如,您可以通过增加 .shift(3) 将其调整为较旧的值。

关于python-3.x - 如何构建基于时间的 EWMA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55979324/

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