我有一个具有以下值的数据框
df['Signal'] = [No, No, No, Sell, Buy, Buy, Buy, Sell]
如何创建新的数据框列,其中
如果df['Signal'].iloc[i] = "No"
,则df['Position'].iloc[i]
将显示0
及
如果df['Signal'].iloc[i] = "Sell"
,则df['Position'].iloc[i]
将显示0
及
如果df['Signal'].iloc[i] = "Buy"
,则df['Position'].iloc[i]
仅当它是"Sell"
之后的第一次出现时才会显示1
。意思如果"Buy", "Buy", "Buy"
出现三次,只有第一个"Buy"
将在df['Position']
中显示1
,在任何"Sell"
出现之前"Buy"
的其余部分将是"0"
非常感谢你
我们需要跟踪两个事件,一个是卖出信号的出现,另一个是卖出后的第一次买入。这似乎是我们真正需要做迭代的少数情况之一(这在熊猫身上不是自然的事情)
下面的代码对行进行迭代,维护一个
ready_to_buy
状态,我们在卖出时输入该状态,然后在买入后离开:相关问题 更多 >
编程相关推荐