如何获得准周期序列中的最小值?

use*_*395 2 python group-by pandas pandas-groupby

对于系列

t = [0.1, 1, 2, 3, 0, 1, 2, 3, 4, 5, 0.9, 1, 2]
s = pd.Series(t)
Run Code Online (Sandbox Code Playgroud)

我想获得位置n(和值),其中s.iloc[n]s每次从其最大值返回最小值都为最小值。

所以我想得到这个例子的结果:

position value
0        0.1
4        0
10       0.9
Run Code Online (Sandbox Code Playgroud)

我想有一个基于熊猫的解决方案,因为这个问题只是我要解决的另一个问题的输入。在这种情况下,数据量确实很大。

Lan*_*ere 5

如果条件仅仅是检查上一个元素:

t = [0.1, 1, 2, 3, 0, 1, 2, 3, 4, 5, 0.9, 1, 2]
s = pd.Series(t)

minimums = s[s<s.shift(1, fill_value=s[0]+1)]
>>> print(minimums)
0     0.1
4     0.0
10    0.9
dtype: float64
Run Code Online (Sandbox Code Playgroud)