获取所有满足条件的行之前的第n行索引
Get rows n index prior to all the rows that meet the criteria
我编写了一个程序,可以使用 pandas 根据股票日数据(开盘价、最高价、最低价、收盘价)查找特定的烛台形态。现在我想看看在形态出现后一、两天或三天的平均价格变化是多少。我怎样才能获得模式后的行?假设我想要所有行都带有锤形蜡烛,我可以这样得到它们。
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
然后我想要前一天(后一天)的行,以便将当天的收盘价与前一天(锤子日)进行比较,我怎样才能让 shift 给我锤子前的实际行那一行很可能不符合标准?如果我做类似
的事情
data.loc[data['Hammer'] == True]['Close'].shift()
我最终得到了下一个锤子的收盘价,而不是我需要的紧跟在锤子之后的那一行。
本质上,我需要在所有满足条件
的行之前先索引行
我找到了答案,如果有人遇到类似的问题,我就是这样做的。
要获取过滤器之前或之后的行 (hammer == True),必须在过滤器之前应用 shift。
data.shift()[data['Hammer'] == True]
对于我的特殊情况,以下代码解决了从锤形蜡烛后的第二天抓取 'Close' 列并将其放入列中以供将来比较的问题。
data['One Day After Hammer'] = data.shift()[data['Hammer'] == True]['Close']
我编写了一个程序,可以使用 pandas 根据股票日数据(开盘价、最高价、最低价、收盘价)查找特定的烛台形态。现在我想看看在形态出现后一、两天或三天的平均价格变化是多少。我怎样才能获得模式后的行?假设我想要所有行都带有锤形蜡烛,我可以这样得到它们。
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
然后我想要前一天(后一天)的行,以便将当天的收盘价与前一天(锤子日)进行比较,我怎样才能让 shift 给我锤子前的实际行那一行很可能不符合标准?如果我做类似
的事情data.loc[data['Hammer'] == True]['Close'].shift()
我最终得到了下一个锤子的收盘价,而不是我需要的紧跟在锤子之后的那一行。 本质上,我需要在所有满足条件
的行之前先索引行我找到了答案,如果有人遇到类似的问题,我就是这样做的。 要获取过滤器之前或之后的行 (hammer == True),必须在过滤器之前应用 shift。
data.shift()[data['Hammer'] == True]
对于我的特殊情况,以下代码解决了从锤形蜡烛后的第二天抓取 'Close' 列并将其放入列中以供将来比较的问题。
data['One Day After Hammer'] = data.shift()[data['Hammer'] == True]['Close']