两个日期之间的工作日,不包括python中的假期

Mat*_*t.S 2 python date

我目前正在使用

np.busday_count(day1, day2))
Run Code Online (Sandbox Code Playgroud)

计算两个日期之间的工作日数。如何排除工作日的假期?

小智 5

从v0.14开始,您可以使用假期日历

import pandas as pd
from pandas.tseries.holiday import USFederalHolidayCalendar
from pandas.tseries.offsets import CustomBusinessDay
day1 = '2010-01-01'
day2 = '2010-01-15'
us_bd = CustomBusinessDay(calendar=USFederalHolidayCalendar())

print(pd.DatetimeIndex(start=day1,end=day2, freq=us_bd))
Run Code Online (Sandbox Code Playgroud)

输出:

DatetimeIndex(['2010-01-04', '2010-01-05', '2010-01-06', '2010-01-07',
           '2010-01-08', '2010-01-11', '2010-01-12', '2010-01-13',
           '2010-01-14', '2010-01-15'],
          dtype='datetime64[ns]', freq='C')
Run Code Online (Sandbox Code Playgroud)

要获取天数,请使用len

print(len(pd.DatetimeIndex(start=day1,end=day2, freq=us_bd)))
Run Code Online (Sandbox Code Playgroud)

输出:

10
Run Code Online (Sandbox Code Playgroud)

  • “pd.DatetimeIndex”的“start”和“end”参数现已删除。请使用 `pd.date_range(start=day1, end=day2, freq=us_bd)` 代替 (3认同)