python - 如何获得准周期序列中的最小值?
问题描述
对于系列 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 的解决方案,因为这个问题只是我必须解决的另一个问题的输入。在这种情况下,数据量确实很大。
解决方案
如果条件只是对前一个元素的检查:
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
推荐阅读
- flutter - 在颤动中删除下拉底线
- python - Win 错误 10060:我无法连接到服务器
- javascript - 加载特定页面时,如何在我的 Service Worker 上运行特定功能?
- javascript - 谷歌表格中的“脚本应用程序”是否会自动登录网站?
- javascript - 如何在 Angular 中为一个属性分配其他属性
- git - 克隆一个没有创建分支的拉取请求?
- python - 如何创建新变量而不是旧变量的链接?
- macos - 预期的可重定位表达式
- abbyy - Finereader 将图像中的多个表格识别为布局中的单个表格块
- embedded - 微程序与嵌入式系统之间的连接