Python如何处理操作

Python如何处理操作,python,pandas,numpy,numpy-ndarray,Python,Pandas,Numpy,Numpy Ndarray,我有以下问题,我不知道如何以可接受的性能解决 例如: df['close'] = [1, 4, 5, 3, 1, 2] df['buy'] = [False, True, False, False, True, False] df['indicator'] = [3.1, 5.3, 0.3, 0.1, 6.2, 8.5, 9.0] df['sell'] = [False,False,False,False,False,False] 我有一份清单,上面列出了两个日期之间的所有收盘价 收盘价=[1

我有以下问题,我不知道如何以可接受的性能解决

例如:

df['close'] = [1, 4, 5, 3, 1, 2]
df['buy'] = [False, True, False, False, True, False]
df['indicator'] = [3.1, 5.3, 0.3, 0.1, 6.2, 8.5, 9.0]
df['sell'] = [False,False,False,False,False,False]
我有一份清单,上面列出了两个日期之间的所有收盘价 收盘价=[1,2,5,3,10,1]

我还有一个数组,只有True和False,如果是买单的话,它是True。 购买指数=[假,真,假,假,真,假]

所有的滥用都可以在pandas.DataFrame中找到

没有for循环,我怎么能说这样的话

我想用np.where检查一下收盘价中的所有元素,这些元素在买入价中都是正确的,我想检查其中哪一个符合我的条件,然后转到下一个

最后,我将有一个包含所有卖出信号的数组

有谁能告诉我,在不使用for循环的情况下,我应该如何解决这个问题,然后迭代所有数组并检查条件?还是这是唯一的办法

更新:

例如:

df['close'] = [1, 4, 5, 3, 1, 2]
df['buy'] = [False, True, False, False, True, False]
df['indicator'] = [3.1, 5.3, 0.3, 0.1, 6.2, 8.5, 9.0]
df['sell'] = [False,False,False,False,False,False]
我想要的是

循环整体“关闭”价格 在“购买”列中找到第一个为真的值,例如,在我们的例子中,是索引1中的值4 从同一索引上的'indicator'列中获取的值在我们的示例中为5.3 检查以下哪些“成交”价格将满足某些条件,这些条件将使用5.3作为参数 找到满足条件的第一个值并将“卖出”指数设置为真时停止 例:如果我们从“收盘”价格4开始,该价格对应于指标的5.3值。我们将检查所有符合条件5.3的价格,例如,指数3的“收盘”价格3是否符合条件5.3 条件我们将从'sell'True=>[False,False,False,True,False,False]设置索引

转到下一个收盘价并重复此过程
我对你想要什么的理解:

对于在“购买”列中为True的每一行:

函数根据表中行下所有“关闭”值的列表检查该行的指示符 函数返回我应该出售的行的索引 然后:

更新其索引由函数返回的所有行的“sell” 输入:

df = pd.DataFrame()
df['close'] = [1, 4, 5, 3, 1, 2]
df['buy'] = [False, True, False, False, True, False]
df['indicator'] = [3.1, 5.3, 0.3, 0.1, 6.2, 8.5]
df['sell'] = [False,False,False,False,False,False]

很明显,您可以删除中间步骤列row_index和sell_index,我将创建一个数据帧。df包含两列数据,然后使用df['new column']=df.applyfunc创建第三列,其中func是一个函数,它获取两个原始列中的值的元组并返回您想要的任何值。apply逐行应用函数。applyfunc逐列应用函数。applyfunc,axis=1逐行应用函数。请添加输入数据帧的小样本以及预期数据帧的外观like@SamSzotkowski和@CameronRiddle我不知道如何使用来申请我的case@tdy我补充了一点解释,如果不太清楚,请告诉我,我会尝试编辑它。谢谢你的回答,但这并不是我所需要的。让我试着用其他的话来解释。我有一张“买入”的清单,它将告诉我,在哪里是买入股票的好时机。但是我需要把它卖掉以获取利润,因为我的条件在哪里。我想检查下一个能满足我条件的“收盘价”,如果是,我会用true设置该值。买入=[False,true,False,False,False]收盘=[1,2,3,1,5,6]指标=[0.2,0.6,0.1,9,10,11]我的买入信号在价格=3,指标=0.6和指标=1时闪烁,现在我想从收盘开始[index:]直到我找到第一个价格,比如说,指数2的指标值小于10*0.6。如果这是真的,我会在我的销售数组中加入一个真的。在我们的例子中,5将满足条件。最后我会有。buy=[False,True,False,False]sell=[False,False,False,True,False]告诉我这是否正确:对于buy==True的每一行,我们希望传递该行的指示符以及该行之后的所有收盘值,到条件函数?我们只想将指标中的一个值以及该指标之后的所有收盘值传递到条件,该指标位于与buy==True相同的索引中。条件应该检查指示器的特定值乘以10是否大于我们正在检查的当前接近值。我想我现在明白了,正在研究它