【发布时间】:2017-08-16 20:47:43
【问题描述】:
我目前有两个数据框,并希望根据两个条件都满足创建第三个数据框:如果数据框 1 中的相应值刚刚突破 2 并且数据框 2 的值
df1
df2
并且代码应该如下创建df3:
即条件仅在 17 年 8 月 13 日的 5y 为 TRUE,因为 5y 已突破 2 且 df2 中的值
这样做的目的是在整个数据帧上复制mean reversion strategy 在此处所做的工作,而不仅仅是针对单个时间序列,即示例中的每个步骤都在数据帧上执行处理,而不是时间序列级别。
所以问题是如何在数据框而不是列级别应用下面的移位函数。
df4['short entry'] = ((df4.zScore < - entryZscore) & ( df4.zScore.shift(1) > - entryZscore)&(df4['hurst'] < hurstentry))
【问题讨论】:
-
为什么 10y 13-Aug-17 是假的? df1 中 10y 13-Aug-17 的值为 2.3,大于 2。df2 中 10y 13-Aug-17 的值为 0.1,小于 0.2。 17 年 8 月 13 日 10 年的 df3 中应该是真的,对吧?
-
我已经阅读了您上面提到的均值回归策略。如果您的目标是使用不同持续时间的均值回归,即 2 年、5 年或 10 年。我认为您也许能够找到在数据帧级别上进行操作的方法。但是,其他人可能并不容易理解它。您可以考虑使用 for 循环并将数据框列命名为 'zscore_2y', 'zscore_5y' 。如果需要并且我的理解是正确的,我可以提供一个示例来进一步说明我的想法。
-
10y 13-aug-17 为假,因为 df1 需要刚刚突破 2。10y 12-aug-17 也是 >2,所以只有当 df 中的对应值时才满足 TRUE 条件在时间 t > 2 并且 t-1