Я новичок, несколько дней изучал панд и начал свой первый проект с ним.Я хотел использовать его для создания графика прогнозирования запасов на текущий месяц.
В основном я получаю акции и прогнозируемое ежедневное снижение и прослеживаю линию с сегодняшнего дня до конца месяца с прогнозируемыми акциями.Кроме того, если есть заказ на поставку, который должен быть доставлен в день 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
Я создал этот цикл для итерации по фрейму данных и сделал следующее:
вычтите DAILY_DEDUCTION для элемента
, если дата совпадает с датой заказа на покупку, затем добавьте 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 тыс. Строк «давай или бери», и надеялся найти представление о том, как решить эту проблему так, чтобы она работала лучше?