Try out this package called business-duration in PyPi
pip install business-duration
Example Code:
from business_duration import businessDurationimport pandas as pdfrom datetime import time,datetimeimport holidays as pyholidaysstartdate = pd.to_datetime('2017-01-01 00:00:00')enddate = pd.to_datetime('2017-01-31 23:00:00')starttime=time(9,0,0)endtime=time(17,0,0)holidaylist = pyholidays.Australia()unit='hour'#By default weekends are Saturday and Sundayprint(businessDuration(startdate,enddate,starttime,endtime,holidaylist=holidaylist,unit=unit))Output: 160.0holidaylist:{datetime.date(2017, 1, 1): "New Year's Day", datetime.date(2017, 1, 2): "New Year's Day (Observed)", datetime.date(2017, 1, 26): 'Australia Day', datetime.date(2017, 3, 6): 'Canberra Day', datetime.date(2017, 4, 14): 'Good Friday', datetime.date(2017, 4, 15): 'Easter Saturday', datetime.date(2017, 4, 17): 'Easter Monday', datetime.date(2017, 4, 25): 'Anzac Day', datetime.date(2017, 6, 12): "Queen's Birthday", datetime.date(2017, 9, 26): 'Family & Community Day', datetime.date(2017, 10, 2): 'Labour Day', datetime.date(2017, 12, 25): 'Christmas Day', datetime.date(2017, 12, 26): 'Boxing Day'}