Создание срока на основе критериев - PullRequest
0 голосов
/ 05 октября 2018

С данными даты и времени ниже я хотел бы установить «крайний срок» относительно столбца «Дата».По сути, крайний срок должен составлять 2 рабочих дня с момента «даты».Однако есть некоторые конкретные критерии, которые приведены ниже:

Если «Дата» в праздничные или выходные дни, то крайний срок должен быть следующим 2 рабочим днем ​​в 17:00.

Если «Дата» в понедельник-пятницу, а не в праздничные дни, а «Дата» находится в диапазоне от 0 до 8, то крайний срок должен быть следующим нерабочим, рабочим днем ​​в 17:00 часов

Если «Дата» в понедельник-пятницу, а не в праздничные дни, а час «Дата» находится в промежутке между 9-17, то крайним сроком должны быть следующие 2 нерабочих, рабочих дня вв то же время.

Если «Дата» в понедельник-пятницу, а не в праздничные дни, а час «Дата» находится в интервале 18-23, то в качестве следующих двух не выходных днейрабочий день в 17:00

Ниже приведены данные:

import datetime

Holidays = [date(2018,1,1),date(2018,1,15),date(2018,2,19),date(2018,3,9)]

df = pd.DataFrame({'Date': ['2018-01-01 18:47','2018-01-08 06:11','2018-01-12 10:05','2018-02-10 09:22','2018-02-20 14:14','2018-03-08 16:17','2018-03-25 17:35'],
                   'Weekday': [0,0,4,5,1,3,6],
                   'Hour': [18,6,10,9,14,16,17]})

df['Date'] = pd.to_datetime(df['Date'])

Результат должен быть следующим:

df = pd.DataFrame({'Date': ['2018-01-01 18:47','2018-01-08 06:11','2018-01-12 10:05','2018-02-10 09:22','2018-02-21 14:14','2018-03-08 16:17','2018-03-25 17:35'],
               'Deadline': ['2018-01-03 17:00','2018-01-09 17:00','2018-01-17 10:05','2018-02-13 17:00','2018-02-23 14:14','2018-03-13 16:17','2018-03-27 17:00']})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...