NumPy | is_busday method
Start your free 7-days trial now!
Numpy's 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.
Parameters
1. dates | array-like of datetime
The input array of datetimes. Datetimes are essentially strings formatted like so:
"2020-05-25"
2. weekmasklink | string or array-like of boolean | optional
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
For instance, "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.
By default, weekmask="1111100", that is, valid weekdays are from Monday to Friday (both inclusive).
3. holidayslink | array-like of datetime | optional
An array of datetimes that are deemed as invalid dates.
4. busdaycallink | busdaycalender | optional
An busdaycalendar object that specifies which dates are deemed as valid dates. If this parameter is provided, then you should not specify parameters weekmask and holidays.
Return value
A Numpy array of booleans, where True represents a valid datetime, and False otherwise.
Examples
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.
Specifying holidays
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:
np.is_busday(["2020-12-25", "2020-12-26", "2020-12-27"], busdaycal=bdc)
array([ True, False, True])
Here, 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.