У меня есть датафрейм pandas со структурой, показанной ниже:
| Contract |Purchase Date|Value|Expiration Date|Demand|Stock
| A | 2019-01-01 |1000 | 2019-01-04 |700 | 300
| B | 2019-01-02 |1000 | 2019-01-05 |1000 | 300
| C | 2019-01-03 |1000 | 2019-01-06 |1200 | 100
| D | 2019-01-04 |1000 | 2019-01-07 |1000 | 100
| E | 2019-01-05 |1000 | 2019-01-08 |1000 | 0
| F | 2019-01-06 |1000 | 2019-01-09 |800 | 200
| G | 2019-01-07 |1000 | 2019-01-10 |1000 | 200
В столбце «Спрос» представлены требуемые дневные объемы, в столбце «Контракт» - дневные объемы, которые были приобретены для удовлетворения спроса. Эти контракты имеют срок годности.
Система работает следующим образом:
Когда спрос ниже, чем контракты, оставшийся объем поступает в столбец «Запас» (как в первой строке примера).
Когда спрос выше, чем контракты, и есть положительный запас, он используется для удовлетворения спроса (как в строке 3). Здесь мы используем методологию FIFO. Другими словами, первый купленный контракт - первый контракт, если он не истек (как в строке 5).
Итак, мне нужно автоматически удалить из запаса суммы, срок действия которых истек в то же время, когда запас автоматически уменьшается, когда спрос превышает контракты в соответствии с методологией FIFO.
Я новичок в python и не смог найти подход, который мне подходит. Буду признателен за любую вашу идею.
Просто чтобы прояснить, я не ищу, чтобы вы его кодировали, а я ищу соответствующую библиотеку, которая могла бы обрабатывать эти операции. Я знаю, что должен использовать объекты deque для части FIFO (а также здесь есть много информации об этом), но не знаю, как обрабатывать даты истечения срока действия.