Py学习  »  Python

如何使用python按顺序映射销售和购买?

Meet • 3 年前 • 1187 次点击  

我有一个事务数据框架,如下所示:

     Item  Date        Code   Qty  Price   Value
0    A     01-01-01    Buy    10   100.5   1005.0
1    A     02-01-01    Buy    5    120.0   600.0
2    A     03-01-01    Sell   12   125.0   1500.0
3    A     04-01-01    Buy    9    110.0   990.0
4    A     04-01-01    Sell   1    100.0   100.0
#and so on... there are a million rows with about thousand items (here just one item A)

我想要的是以先进先出的顺序方式,将每个销售交易与购买交易进行映射。因此,最先购买的商品将首先售罄。

为此,我添加了一个新专栏 bQty 期初余额与采购数量相同。然后,我迭代每个销售交易的数据帧,以在该日期之前将销售数量与购买交易进行对比。

df['bQty'] = df[df['Code']=='Buy']['Quantity']
for each in df[df['Code']=='Sell']:
    for each in df[(df['Code']=='Buy') & (df['Date'] <= sellDate)]:
        #code#

现在,这需要我一遍又一遍地检查每个销售交易的整个数据帧。

对于1000条记录,大约需要10秒才能完成。所以,我们可以假设,对于一百万条记录来说,这种方法需要很多时间。

有没有更快的方法?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131444
 
1187 次点击  
文章 [ 1 ]  |  最新文章 3 年前