bundles / numpy latest / numpy / busday_offset
_ArrayFunctionDispatcher
numpy:busday_offset
Signature
def busday_offset ( dates , offsets , roll = raise , weekmask = 1111100 , holidays = None , busdaycal = None , out = None ) Summary
First adjusts the date to fall on a valid day according to the roll rule, then applies offsets to the given dates counted in valid days.
Parameters
dates: array_like of datetime64[D]The array of dates to process.
offsets: array_like of intThe array of offsets, which is broadcast with
dates.roll: {'raise', 'nat', 'forward', 'following', 'backward', 'preceding', 'modifiedfollowing', 'modifiedpreceding'}, optionalHow to treat dates that do not fall on a valid day. The default is 'raise'.
'raise' means to raise an exception for an invalid day.
'nat' means to return a NaT (not-a-time) for an invalid day.
'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.
'modifiedfollowing' means to take the first valid day later in time unless it is across a Month boundary, in which case to take the first valid day earlier in time.
'modifiedpreceding' means to take the first valid day earlier in time unless it is across a Month boundary, in which case to take the first valid day later in time.
weekmask: str or array_like of bool, optionalA seven-element array indicating which of Monday through Sunday are valid days. May be specified as a length-seven list or array, like [1,1,1,1,1,0,0]; a length-seven string, like '1111100'; or a string like "Mon Tue Wed Thu Fri", made up of 3-character abbreviations for weekdays, optionally separated by white space. Valid abbreviations are: Mon Tue Wed Thu Fri Sat Sun
holidays: array_like of datetime64[D], optionalAn array of dates to consider as invalid dates. They may be specified in any order, and NaT (not-a-time) dates are ignored. This list is saved in a normalized form that is suited for fast calculations of valid days.
busdaycal: busdaycalendar, optionalA
busdaycalendarobject which specifies the valid days. If this parameter is provided, neither weekmask nor holidays may be provided.out: array of datetime64[D], optionalIf provided, this array is filled with the result.
Returns
out: array of datetime64[D]An array with a shape from broadcasting
datesandoffsetstogether, containing the dates with offsets applied.
Examples
import numpy as np # First business day in October 2011 (not accounting for holidays) np.busday_offset('2011-10', 0, roll='forward') # Last business day in February 2012 (not accounting for holidays) np.busday_offset('2012-03', -1, roll='forward') # Third Wednesday in January 2011 np.busday_offset('2011-01', 2, roll='forward', weekmask='Wed') # 2012 Mother's Day in Canada and the U.S. np.busday_offset('2012-05', 1, roll='forward', weekmask='Sun')✓
# First business day on or after a date np.busday_offset('2011-03-20', 0, roll='forward') np.busday_offset('2011-03-22', 0, roll='forward') # First business day after a date np.busday_offset('2011-03-20', 1, roll='backward') np.busday_offset('2011-03-22', 1, roll='backward')✓
See also
- busday_count
Counts how many valid days are in a half-open date range.
- busdaycalendar
An object that specifies a custom set of valid days.
- is_busday
Returns a boolean array indicating valid days.
Aliases
-
numpy.busday_offset