Мне нужна помощь, чтобы панды работали лучше с взаимодействиями с данными - PullRequest
0 голосов
/ 14 мая 2018

Я новичок, несколько дней изучал панд и начал свой первый проект с ним.Я хотел использовать его для создания графика прогнозирования запасов на текущий месяц.

В основном я получаю акции и прогнозируемое ежедневное снижение и прослеживаю линию с сегодняшнего дня до конца месяца с прогнозируемыми акциями.Кроме того, если есть заказ на поставку, который должен быть доставлен в день 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)
    

И ... ну, он сделал свою работу, но довольно медленно.Я запускаю это на 100 тыс. Строк «давай или бери», и надеялся найти представление о том, как решить эту проблему так, чтобы она работала лучше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...