为了账号安全,请及时绑定邮箱和手机立即绑定

从特定行开始,如何继续它们的值直到遇到具有更高值的行?

从特定行开始,如何继续它们的值直到遇到具有更高值的行?

手掌心 2021-09-11 10:16:37
假设有一个熊猫系列和一个标记某些行的布尔掩码。排除掩码值,所有其他值按升序排序。如何将屏蔽值写入后续行中,直到遇到具有更高值的行?我对仅使用布尔掩码和 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.])

1 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-09-11
  • 1 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号