python - 在Python中滚动时使用以前的数据

标签 python pandas apply rolling-computation

我想在 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/

相关文章:

python - Python 中的散列元组在不同系统中导致不同的结果

python - 如何使用 python 从 .conf 文件读取数据?

python - ipython 中有趣的导入行为

python - 每个唯一列值的天数和扩展评级

Python 绘制两个变量之间的每月数据

python - 如何使用 df.style 根据整数位置(例如 df.iloc[1,1])定义 Pandas 数据框中特定单元格的颜色?

python - 使用 apply() 自定义函数创建新列时出现 Pandas 内存错误

python - 从python中的文本文件中删除二进制数据

python-3.x - Pandas apply 函数 - args 是如何传递的

r - 在 R 中组合列表列表中的元素