我想在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'])
您能在上面帮助我吗
谢谢
答案 0 :(得分:1)
我的猜测是,您应该使用带有lambda表达式的Pandas滚动方法联接,类似于以下内容:
X = [your_Pandas_Serie]
rolling_window = X.rolling([the_length_of_your_Serie])
rolling_window.apply(lambda x: [your_function])
使用简单的滚动方法(例如mean())熟悉并在实现最终解决方案之前使用lambda表达式。
我在交易软件中使用了相同的流程。