回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我希望<strong>在<code>condrolmax</code>(基于<code>close</code>)列</strong>(条件滚动/累计最大值)中实现以下结果,而不使用愚蠢的慢速for循环</p>
<pre><code>Index close bool condrolmax
0 1 True 1
1 3 True 3
2 2 True 3
3 5 True 5
4 3 False 5
5 3 True 3 --> rolling/accumulative maximum reset (False cond above)
6 4 True 4
7 5 False 4
8 7 False 4
9 5 True 5 --> rolling/accumulative maximum reset (False cond above)
10 7 False 5
11 8 False 5
12 6 True 6 --> rolling/accumulative maximum reset (False cond above)
13 8 True 8
14 5 False 8
15 5 True 5 --> rolling/accumulative maximum reset (False cond above)
16 7 True 7
17 15 True 15
18 16 True 16
</code></pre>
<p>创建此数据帧的代码:</p>
<pre><code># initialise data of lists.
data = {'close':[1,3,2,5,3,3,4,5,7,5,7,8,6,8,5,5,7,15,16],
'bool':[True, True, True, True, False, True, True, False, False, True, False,
False, True, True, False, True, True, True, True],
'condrolmax': [1,3,3,5,5,3,4,4,4,5,5,5,6,8,8,5,7,15,16]}
# Create DataFrame
df = pd.DataFrame(data)
</code></pre>
<p>我相信这是可能的矢量化(一个线性)。有什么建议吗</p>
<p>再次感谢</p>