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. weekmask
link | 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. holidays
link | array-like
of datetime
| optional
An array of datetimes that are deemed as invalid dates.
4. busdaycal
link | 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.