我试图找到最快的解决方案来迭代每行 Open High Low Close 数据并计算当前行的高点和大于或等于原始行的下一个高点之间存在多少行。这是一个简短的代码示例,我认为它很好地解释了它(我试图找到 的最终值_next
):
for i in df.index:
while df.loc[i, 'high'] > df.loc[_next, 'high']:
_next += 1
我想我需要在lambda
里面使用一个函数,apply
但我似乎无法正确使用它。几天来一直试图解决这个问题,并希望得到任何建议!
使用这些数据,函数应该返回[2, 0, 0, 3, 1, 0, 0]
d = {'high': [1.2, 1.1, 1.1, 1.4, 1.3, 1.2, 1.3]}
df = pd.DataFrame(data=d)
high rows_to_higher_high
0 1.2 2
1 1.1 0
2 1.1 0
3 1.4 3
4 1.3 1
5 1.2 0
6 1.3 0
编辑: itertuples(name=None, index=True) 是迄今为止最快的方法。