Python 如何高效地将数据帧中的数据过滤并提取到阵列中

Python 如何高效地将数据帧中的数据过滤并提取到阵列中,python,pandas,Python,Pandas,我有一个数据帧df_订单,如下所示: Symbol action orderid qty status price AAPL buy 1232131 100 open 110.41 MSFT sell 8120472 200 open 83.42 MSFT sell 8120473 500 open 81.12 我想获取每

我有一个数据帧df_订单,如下所示:

    Symbol    action    orderid   qty    status   price
    AAPL      buy       1232131   100    open     110.41
    MSFT      sell      8120472   200    open     83.42
    MSFT      sell      8120473   500    open     81.12
我想获取每行的orderid、数量、状态和价格,其中'Symbol'=='MSFT'和'Action'=='sell'并将它们放入一个数组中。期望输出为

[['MSFT','sell',8120472,200,'open',83.42],['MSFT','sell',8120473,200,'open',81.12]]
我不久前写了下面的代码,它可以工作,但效率不高。我每天需要运行这段代码至少5000万次,并且需要非常毫秒的计数


myarray = []
dfsells = df_orders[df_orders['Symbol'] == symbol]
if len(dfsells.index) > 0:
    dfsells = dfsells[dfsells['action'] == 'Sell']
    dfsells = dfsells.reset_index(drop=True)

    if len(dfsells.index) > 0:
        for j in range(0,len(dfsells.index)):
                orderid = dfsells.loc[j,'orderid']
                sellqty = dfsells.loc[j,'qty']
                status = dfsells.loc[j,'status']
                price = round(float(dfsells.loc[j,'price']),2)
                myarray.append([symbol,'sell',orderid,sellqty,status,price])

获取此阵列的最快方法是什么

df[(df['Symbol'] == symbol) & (df['action'] == 'Sell')].values.tolist()
测试用例(在笔记本中):

输出:

Wall time: 68.6 ms
99781

我想这花了
68.6ms
太快了。

你可以只写
df.loc[(df.Symbol='MSFT'| df.Action='sell,[你喜欢的功能列表]。值
Wall time: 68.6 ms
99781