我编写了一个程序,该程序使用大熊猫根据股票的当日数据(开盘价,最高价,最低价,收盘价)查找特定的烛台图案。现在,我想看看模式出现后一两天或三天的平均价格变化是多少。如何获得模式后的行?假设我希望所有行都带有锤击蜡烛,我可以像这样得到它们。
data[data['Hammer'] == True]
Symbol Date Open High Low Close Volume Day Close Hammer
4 AMZN 2019-12-16 1767.00 1769.50 1757.05 1769.21 3149300 Up True
10 AMZN 2019-12-06 1751.20 1754.40 1740.13 1751.60 3119900 Up True
41 AMZN 2019-10-23 1761.30 1770.05 1742.00 1762.17 2190300 Up True
55 AMZN 2019-10-03 1713.00 1725.00 1685.06 1724.42 3624300 Up True
66 AMZN 2019-09-18 1817.04 1822.06 1795.50 1817.46 2536000 Up True
82 AMZN 2019-08-26 1766.91 1770.00 1743.51 1768.87 3085300 Up True
然后,我想要前一行(后一天)的行,以便将该天的收盘价与前一天(汉默日)的价格进行比较,当行时,我该如何转移到锤子之前给我实际的行将最有可能不符合标准?如果我做类似的事情
data.loc[data['Hammer'] == True]['Close'].shift()
最后我要关闭下一个锤子,而不是紧随锤子之后的那排,这正是我需要的。 本质上,我需要在符合条件的所有行之前的第一个索引
答案 0 :(得分:0)
我想出了答案,如果有人遇到类似问题,这就是我所做的。 要在过滤器(hammer == True)之前或之后获取行,必须在过滤器之前应用移位。
data.shift()[data['Hammer'] == True]
对于我的特殊情况,以下代码解决了从锤击蜡烛发生的第二天开始抓取“关闭”列并将其放在列中以供将来比较的问题。
data['One Day After Hammer'] = data.shift()[data['Hammer'] == True]['Close']