Pandas: 如何在滚动中找到高点后的低点 window

Pandas: How to find the low after a high within a rolling window

对于一系列数字,我试图在滚动 window 中找到高点之后的低点。我能够计算出 window 内的高点,但无法计算同一 window 内的低点。我正在使用 Pandas 并试图获取高点的索引并将其用作某种类型的参考,但我无法让它工作。

这里是设置问题的一些代码:

 dates = pd.date_range("20130101", periods=15)
 temps = {'Temperature' :[16, 3, 26, 56, 2, 92, 54, 98, 73, 68, 80, 18, 75, 24, 12]}
 df = pd.DataFrame(temps, index=dates, columns = ['Temperature'])
 df['RollMax'] = df['Temperature'].rolling(5).max()
 # df['Low_After_High'] = ### Lowest value after high has been reached within the window

输出应该是这样的:

让我们用 idxmax

apply
df['Low_After_High'] = df.Temperature.rolling(5).apply(lambda x : min(x[pd.Series(x).idxmax():]))
2013-01-01     NaN
2013-01-02     NaN
2013-01-03     NaN
2013-01-04     NaN
2013-01-05     2.0
2013-01-06    92.0
2013-01-07    54.0
2013-01-08    98.0
2013-01-09    73.0
2013-01-10    68.0
2013-01-11    68.0
2013-01-12    18.0
2013-01-13    18.0
2013-01-14    18.0
2013-01-15    12.0
Freq: D, Name: Temperature, dtype: float64