猿问

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

假设有一个熊猫系列和一个标记某些行的布尔掩码。排除掩码值,所有其他值按升序排序。如何将屏蔽值写入后续行中,直到遇到具有更高值的行?

我对仅使用布尔掩码和 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.])


手掌心
浏览 135回答 1
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.101     0.152     0.293     0.294     0.295     0.306     0.467     0.508     0.529     0.5510    0.8111    0.8112    0.8113    0.8114    0.8415    0.9116    0.9317    0.9818    1.00
随时随地看视频慕课网APP

相关分类

Python
我要回答