Это немного сложно объяснить, но я постараюсь изо всех сил, пожалуйста, потерпите меня.
У меня есть pd с ID, датой отгрузки и единицами измерения.Я хочу рассчитать единицы, отправленные в течение 3-дневного периода, и это число не должно перекрываться, например, мой кадр данных выглядит следующим образом.
ID Shipping Date Units Expected output
153131151007 20180801 1 1
153131151007 20180828 1 2
153131151007 20180829 1 0
153131151007 20180904 1 1
153131151007 20181226 2 4
153131151007 20181227 1 0
153131151007 20181228 1 0
153131151007 20190110 1 1
153131151007 20190115 2 3
153131151007 20190116 1 0
153131151011* 20180510 1 2
153131151011* 20180511 1 0
153131151011* 20180513 1 2
153131151011* 20180515 1 0
153131151011* 20180813 1 1
153131151011* 20180822 1 2
153131151011* 20180824 1 0
153131151011* 20190103 1 1
Код должен проверять дату, посмотреть, есть ли какие-либо отгрузки вСледующие 3 дня, если есть отгрузка, она должна суммировать ее в своем столбце текущей даты и убедиться, что она не учитывает суммированный счет для расчета следующей даты.
Таким образом, для первого идентификатора Дата отгрузки 20181226, этопроверяет 1226,1227,1228 и суммирует их вместе и показывает результат в 1226, и он показывает 0 в следующих 2 ячейках.
Аналогично для 2-го ID 20180510, 0510 является первой датой отгрузки в серии.Он проверяет 0510,0511 и 0512 и суммирует их в 0510, а остальные обнуляет, поэтому 0511 не учитывает 0513 и входит в другую группу отгрузки.
data = pd.DataFrame({'ID':['153131151007','153131151007','153131151007','153131151007','153131151007','153131151007','153131151007','153131151007','153131151007','153131151007','153131151011*','153131151011*','153131151011*','153131151011*','153131151011*','153131151011*','153131151011*','153131151011*'],
'Date':[20180801,20180828,20180829,20180904,20181226,20181227,20181228,20190110,20190115,20190116,20180510,20180511,20180513,20180515,20180813,20180822,20180824,20190103],
'Units':[1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1]})