NumPy | is_busday method
is_busday(~) method checks whether or not each date string is a valid date. Note that busday stands for business day, but we can specify what a "business" day is via the parameters.
The input array of datetimes. Datetimes are essentially strings formatted like so:
The days of the week that are considered to be valid. You could either specify a string of length 7 with 0s representing invalid and 1s representing valid weekdays, from Monday to Sunday. For instance,
"1111100" would mean that weekends (Saturday and Sunday) would be invalid dates. Also, instead of typing in binaries, you could also use three-character abbreviations like:
Mon Tue Wed Thu Fri Sat Sun
"Mon Wed Fri" would mean that only Mondays, Wednesdays and Fridays are valid dates, and all other weekdays are invalid.
Alternatively, you could provide an array of booleans of size 7, where True means that that corresponding weekday is valid, and False otherwise. For instance,
[True,True,True,True,True,False,False] would again mean that weekends would be invalid dates.
weekmask="1111100", that is, valid weekdays are from Monday to Friday (both inclusive).
An array of datetimes that are deemed as invalid dates.
busdaycalendar object that specifies which dates are deemed as valid dates. If this parameter is provided, then you should not specify parameters
A Numpy array of booleans, where True represents a valid datetime, and False otherwise.
Specifying a weekmask
np.is_busday(["2020-12-25", "2020-12-26", "2020-12-27"], "1111110")array([ True, True, False])
Here, we're setting Sunday as an invalid date - if you check your calendar, you'll see that
"2020-12-27" is a Sunday, so this is why we get a False for that entry.
holidays = ["2020-12-25"]np.is_busday(["2020-12-25", "2020-12-26", "2020-12-27"], "1111111", holidays)array([False, True, True])
Here, False is returned for 2020-12-25 since we specified that date as a holiday, and holidays are considered to be invalid dates.
Specifying a valid date
Instead of specifying invalid dates, we can also specify just the valid dates and make all other dates invalid:
bdc = np.busdaycalendar(weekmask="1111111", holidays=["2020-12-26"])np.is_busday(["2020-12-25", "2020-12-26", "2020-12-27"], busdaycal=bdc)array([ True, False, True])
busdaycalendar object specifies what dates are considered to be valid. It may be confusing here but the holidays used in the constructor of
busdaycalender is a list of valid datetimes.