我试图计算一个滚动的“酒吧,因为高”的数字重置为新高是在Pandas。我可以计算滚动高点,但不能计算自那以来的行数。
例如:
import pandas as pd
df = pd.DataFrame([0,1,2,3,10,3,4,5,25],columns=['price'])
df['high'] = df['price'].rolling(window=100000,min_periods=1).max()
在这种情况下,期望的输出将是:
df['barssincehigh'] = [0,0,0,0,0,1,2,3,0]
但我想不出一种方法来计算最近的高点以来的行数。
1条答案
按热度按时间mepcadol1#
如果你的窗口是一个任意大的数字,并且你实际上想计算整个 Dataframe 的累积最大值,你可以用途:
要计算每个新最大值的计数,请执行以下操作:
这种分组将起作用,因为必然存在唯一的组,因为每个最大值***必须***大于所有先前的最大值。