<p>我希望创建一个新列,<code>MaxPriceBetweenEntries</code>基于数据帧片段的max()</p>
<pre><code>idx Price EntryBar ExitBar
0 10.00 0 1
1 11.00 NaN NaN
2 10.15 2 4
3 12.14 NaN NaN
4 10.30 NaN NaN
</code></pre>
<p>变成</p>
<pre><code>idx Price EntryBar ExitBar MaxPriceBetweenEntries
0 10.00 0 1 11.00
1 11.00 NaN NaN NaN
2 10.15 2 4 12.14
3 12.14 NaN NaN NaN
4 10.30 NaN NaN NaN
</code></pre>
<p>我可以使用<code>df.loc[df["EntryBar"].notnull()]</code>和<code>df.loc[df["ExitBar"].notnull()]</code>获取具有EntryBar或ExitBar值的所有行,但我不能使用该值设置新列:</p>
<pre><code>df.loc[df["EntryBar"].notnull(),"MaxPriceBetweenEntries"] = df.loc[df["EntryBar"]:df["ExitBar"]]["Price"].max()
</code></pre>
<p>但在这一点上,这实际上是一个猜测,因为我所尝试的一切都不起作用。理想情况下,解决方案不会直接涉及循环,因为可能有数百万行</p>