第一次写博客,简单记录一下自己在学datetime64中遇到的问题以及最后的理解。
为了允许在只有一周中某些日子有效的上下文中使用日期时间,Numpy中包含“busday”(工作日)功能。 busday_offset(dates, offsets, roll=‘raise’, weekmask=‘1111100’, holidays=None, busdaycal=None, out=None)
将指定的偏移量应用于工作日,单位是天。 (2020-10-16为周五)
a = np.busday_offset('2020-10-16',offsets = 1) print(a) 输出:2020-10-19计算下一个工作日,如果当前日期为非工作日,默认报错。
a = np.busday_offset('2020-10-17',offsets = 1) print(a) 输出:ValueError: Non-business day date in busday_offset可以指定forward或backward规则来避免报错。 ‘forward’ and ‘following’ mean to take the first valid day later in time. (向前取第一个有效的工作日) ‘backward’ and ‘preceding’ mean to take the first valid day earlier in time.(向后取第一个有效的工作日)
a = np.busday_offset('2020-10-17',offsets = 0, roll = 'forward') b = np.busday_offset('2020-10-17',offsets = 1, roll = 'forward') c = np.busday_offset('2020-10-17',offsets = 0, roll = 'backward') d = np.busday_offset('2020-10-17',offsets = 1, roll = 'backward') e = np.busday_offset('2020-10-17',offsets = -1, roll = 'backward') print(a,b,c,d,e) 输出:2020-10-19 2020-10-20 2020-10-16 2020-10-19 2020-10-15注意:forward和backward只是向前和向后找到第一个有效的工作日,至于如何偏移,是向前还是向后,要根据offset的方向决定,为正即向前,为负即向后。