我需要帮助让pandas在数据帧交互中表现更好

时间:2018-05-14 20:56:34

标签: python algorithm pandas

我是新手,已经学习了几天的熊猫,并开始了我的第一个项目。我想用它来创建当月的产品库存预测时间表。

基本上我得到股票并预测每日减少量并追踪从今天到月底的预测库存。此外,如果在XYZ日有交货订单,我会在当天添加交货金额。

我有一个数据框,其中包含今天的股票和本月的预测每日重做

ITEM    STOCK    DAILY_DEDUCTION
A       1000     20
B       2000     15
C       800      8
D       10000    100

另一个数据框包含待处理的采购订单和将要交付的金额。

ITEM    DATE         RECEIVING_AMOUNT
A       2018-05-16   20
B       2018-05-23   15
A       2018-05-17   8
D       2018-05-29   100

我创建了这个循环来迭代数据帧并执行以下操作:

  1. 减去项目的DAILY_DEDUCTION

  2. 如果日期与采购订单日期相同,则添加RECEIVING_AMOUNT

    df_dates = pd.date_range(start=today, end=endofmonth, freq='D')
    
    temptable = []
    
    for row in df_stock.itertuples(index=True):
        predicted_stock= getattr(row, "STOCK")
        item = getattr(row, "ITEM")
    
        for date in df_dates:
            date_format = date.strftime('%Y-%m-%d')
            predicted_stock = predicted_stock - getattr(linha, "DAILY_DEDUCTION")
            order_qty = df_purchase_orders.loc[(df_purchase_orders['DATE'] == date_format)
                                             & (df_purchase_orders['ITEM'] == item), 'RECEIVING_AMOUNT']
            if len(df_purchase_orders.index) > 0:
                predicted_stock = predicted_stock + order_qty.item()
            lista = [date_format, item, int(predicted_stock)]
            temptable.append(lista)
    
  3. 而且......好吧,它完成了这项工作,但速度很慢。我在100k行上给出或接受这个,并希望找到一些有关如何以更好的方式解决这个问题的见解?

0 个答案:

没有答案