我有一个假期列表存储在excel文件中。我想通过忽略存储在我的excel文件中的假期来计算两个日期(date_1date_2)之间的工作日数。

我尝试了np.busday_count,但是我不知道如何包括假期文件。这是我的代码:

claim=pd.read_excel("claim.xlsx")
Holydays=pd.read_excel("Holidays.xlsx")
claim.columns

claim["Resolved"] = pd.to_datetime(claim["Resolved"]).dt.strftime('%Y-%m-%d')
claim["Received_date"] = pd.to_datetime(claim["Received_date"]).dt.strftime('%Y-%m-%d')

#Je définie mes dates
date_1=claim["Received_date"]
date_2=claim["Resolved"]

#Calcul du nombre de jours entre la date et la date de résolution du dossier
claim["nb_jours"] = np.busday_count(date_1, date_2)

最佳答案

这应该可以解决问题:

import numpy as np

maskcal=np.busdaycalendar(
    holidays=[
         '2019-12-24',
         '2020-01-01',
         '2020-01-06',
         '2020-01-10'
                     ])

diff_days=np.busday_count(
      '2019-12-20', '2020-01-20',
         busdaycal=maskcal
)


输出:

17


np.busdaycalendar适用于周末(即周六至周日)。您只需要阅读excel文件,并将其格式化为list可读的日期格式即可。

08-28 09:16