numpy.busday_offset

numpy.busday_offset(dates, offsets, roll='raise', weekmask='1111100', holidays=None, busdaycal=None, out=None)

首先,根据 roll 规则,然后对以有效天数计算的给定日期应用偏移量。

1.7.0 新版功能.

参数
dates类似于datetime64的数组 [D]

要处理的日期数组。

offsets整型数组

偏移数组,用 dates .

roll'raise'、'nat'、'forward'、'following'、'backward'、'preceding'、'modifiedfollowing'、'modifiedreceiding',可选

如何处理不在有效日期的日期。默认值为“raise”。

  • “raise”表示为无效日期引发异常。

  • “nat”是指返回一个nat(不是一次)来处理无效的一天。

  • “转发”和“后续”是指在以后的第一个有效日期。

  • “后向”和“前向”是指提前第一个有效日期。

  • “modifiedfollowing”是指在时间上取第一个有效日,除非它跨越一个月边界,在这种情况下,取时间上的第一个有效日。

  • “ModifiedReceiding”是指提前第一个有效日,除非它跨越了一个月的边界,在这种情况下,应在之后的时间内提前第一个有效日。

weekmaskstr或array类似bool,可选

一个七元素数组,指示星期一到星期日的哪一天有效。可以指定为长度为7的列表或数组,例如 [1,1,1,1,1,0/0] ;一个长度为7的字符串,如“11111 00”;或一个长度为7的字符串,如“周一至周二至周四至周五”,由工作日的3个字符缩写组成,可选择用空格分隔。有效缩写为:周一至周二至周四至周五至周六至周日

holidays类似于datetime64的数组 [D] 可选

要视为无效日期的日期数组。它们可以按任意顺序指定,而nat(非一次性)日期将被忽略。此列表以标准化形式保存,适用于有效日期的快速计算。

busdaycal公休日日历,可选

A busdaycalendar 指定有效日期的对象。如果提供此参数,则不提供周掩码和假日。

out日期时间数组64 [D] 可选

如果提供,则此数组将填充结果。

返回
out日期时间数组64 [D]

从广播中得到的具有形状的数组 datesoffsets 一起,包含应用偏移的日期。

参见

busdaycalendar

指定自定义有效日期集的对象。

is_busday

返回指示有效天数的布尔数组。

busday_count

统计半开放日期范围内的有效天数。

实例

>>> # First business day in October 2011 (not accounting for holidays)
... np.busday_offset('2011-10', 0, roll='forward')
numpy.datetime64('2011-10-03')
>>> # Last business day in February 2012 (not accounting for holidays)
... np.busday_offset('2012-03', -1, roll='forward')
numpy.datetime64('2012-02-29')
>>> # Third Wednesday in January 2011
... np.busday_offset('2011-01', 2, roll='forward', weekmask='Wed')
numpy.datetime64('2011-01-19')
>>> # 2012 Mother's Day in Canada and the U.S.
... np.busday_offset('2012-05', 1, roll='forward', weekmask='Sun')
numpy.datetime64('2012-05-13')
>>> # First business day on or after a date
... np.busday_offset('2011-03-20', 0, roll='forward')
numpy.datetime64('2011-03-21')
>>> np.busday_offset('2011-03-22', 0, roll='forward')
numpy.datetime64('2011-03-22')
>>> # First business day after a date
... np.busday_offset('2011-03-20', 1, roll='backward')
numpy.datetime64('2011-03-21')
>>> np.busday_offset('2011-03-22', 1, roll='backward')
numpy.datetime64('2011-03-23')