python - 从特定行开始,如何继续它们的值,直到遇到具有更高值的行?
问题描述
假设一个熊猫系列和一个标记某些行的布尔掩码。排除屏蔽值,所有其他值按升序排序。如何将屏蔽值写入后续行中,直到遇到具有更高值的行?
我对只使用布尔掩码和 pandas.Series 方法而不是显式处理行索引的解决方案特别感兴趣。非常感谢!
例子
输入:
values = pd.Series([0.1, 0.15, 0.29, 0.22, 0.24, 0.3, 0.46, 0.5, 0.52, 0.55, 0.81, 0.67, 0.7, 0.81, 0.84, 0.91, 0.93, 0.98, 1.])
mask = pd.Series([False, False, True, False, False, False, False, False, False, False, True, False, False, True, False, False, False, False, False])
输出:
values = pd.Series([0.1, 0.15, 0.29, 0.29, 0.29, 0.3, 0.46, 0.5, 0.52, 0.55, 0.81, 0.81, 0.81, 0.81, 0.84, 0.91, 0.93, 0.98, 1.])
解决方案
pandas.Series
有方法cummax
:
values = pd.Series([0.1, 0.15, 0.29, 0.22, 0.24, 0.3, 0.46, 0.5, 0.52, 0.55, 0.81, 0.67, 0.7, 0.81, 0.84, 0.91, 0.93, 0.98, 1.])
values.cummax()
0 0.10
1 0.15
2 0.29
3 0.29
4 0.29
5 0.30
6 0.46
7 0.50
8 0.52
9 0.55
10 0.81
11 0.81
12 0.81
13 0.81
14 0.84
15 0.91
16 0.93
17 0.98
18 1.00
推荐阅读
- reactjs - 有没有办法为包含多条线的折线图中的一条特定线添加阴影?
- python-3.x - Python,一种检查任务是否完成的干净方法
- linux - 从标准输入将数据压缩到现有的 zipfile 子目录中
- javascript - 如何让几个翻转时钟倒计时在某个日期后消失?
- karate - 忽略数组顺序时匹配响应
- html - 如何将模态 video.js 播放器响应式地放入视口?
- html - 在 mySQL 中将日期和时间添加到日期时间数据类型中
- python - Python layer 2 Ethernet frames --> 接收数据
- android - 在通知频道设置中更改通知曲调
- powershell - Powershell 管道变量无输出