Количество дней между двумя датами, без учета выходных и праздничных дней
столкнулся с такой задачкой
Есть перечень этапов с датой начала и окончания этапа. Необходимо вычислить количество дней между этими двумя датами, при этом исключить из расчета выходные и праздничные дни
Даты начала и окончания этапов содержатся в excel файле (Stages.xlsx): датасет stages_data
Даты выходных и праздничных дней, содержатся в отдельном excel файле (Holidays.xlsx) и представлены в датасете holidays_data
Для решения задачи использовал функцию np.busday_count, с параметром holidays, который принимает значения из датафрейма holidays_data
Но на выходе получаю следующее сообщение об ошибке :
ValueError: Cannot safely convert provided holidays input into an array of dates
Подскажите в чем может быть проблема ? Поля всех дат, которые используются для расчета, соответствуют типу данных datetime64[ns]
Примеры файлов :
https://disk.yandex.com/i/DlVyCaELXT7NJw (Holidays.xlsx - список дат выходных и праздников)
https://disk.yandex.com/i/7w3PDaXtue_mGQ (Stages.xlsx - даты этапов)
Код :
import numpy as np
import pandas as pd
#читаем данные из файлов
stages_data = 'C:\\Users\\Username\\Desktop\\Stages.xlsx'
holidays_data = 'C:\\Users\\Username\\Desktop\\Holidays.xlsx'
#создаем датафреймы
df_stages = pd.read_excel(stages_data, sheet_name='data')
df_holidays = pd.read_excel(holidays_data, sheet_name='data')
#устанавливаем формат Дата для всех столбцов
df_stages['Начало'] = pd.to_datetime(df_stages['Начало'], format='%d.%m.%Y')
df_stages['Окончание'] = pd.to_datetime(df_stages['Окончание'], format='%d.%m.%Y')
df_holidays['Дата'] = pd.to_datetime(df_holidays['Дата'], format='%d.%m.%Y')
#вычисляем кол-во дней между двумя датами (исключая праздники и выходные)
days = np.busday_count(df_stages['Начало'], df_stages['Окончание'],holidays=[df_holidays])