根据条件创建截止日期

时间:2018-10-05 20:42:14

标签: python pandas select

使用下面的日期时间数据,我想相对于“日期”列设置“最后期限”。本质上,截止日期应为自“日期”之日起2个工作日。但是,有一些特定的标准如下:

如果“日期”是在假日或周末,则截止日期应为下一个2个工作日的17:00。

如果“日期”是周一至周五,而不是假期,并且“日期”的小时在0-8之间,则截止日期应为下一个非节假日,工作日为17:00

如果“日期”是周一至周五,而不是假期,并且“日期”的时间在9-17之间,则截止日期应为下两个非节假日,同时是工作日

如果“日期”在周一至周五而不是假日,并且“日期”的小时在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']})

0 个答案:

没有答案
相关问题