我想在 python 中执行以下操作
基本上我有一个如下表,其中 y = 0.5
A | B | Result from column A
---
1 2 0.5
---
2 4 0.5*(0.5+ 2)
---
3 5 ...
---
4 4 ...
---
到目前为止,我有一个循环,效率不高,我想要一种矢量化的方法:
X = np.zeros((len(df),))
for i, (_, row) in enumerate(df.iterrows()):
if i == 0:
continue
X[i] = y*(X[i - 1] + row['A'])
您能帮我解决上述问题吗
谢谢
最佳答案
我的猜测是你应该使用 Pandas 滚动方法与 lambda 表达式连接,类似于:
X = [your_Pandas_Serie]
rolling_window = X.rolling([the_length_of_your_Serie])
rolling_window.apply(lambda x: [your_function])
在实现您的最终解决方案之前,请使用像mean()这样的简单滚动方法来熟悉并使用lambda表达式。
我在交易软件中使用了相同的流程。
关于python - 在Python中滚动时使用以前的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51402593/