首页 > 解决方案 > 如何获得准周期序列中的最小值?

问题描述

对于系列 s

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

我想获得每次 s 从最大值回到最小值时最小值的位置n(和值) 。s.iloc[n]

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

position value
0        0.1
4        0
10       0.9

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

标签: pythonpandasgroup-bypandas-groupby

解决方案


如果条件只是对前一个元素的检查:

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

推荐阅读