Pandas可以通過pandas.bdate_range()
函數(shù)生成工作日,并通過自定義日歷參數(shù)來生成節(jié)假日。
下面是一個示例,演示如何使用Pandas生成2021年的工作日和自定義的節(jié)假日:
import pandas as pd
from pandas.tseries.holiday import AbstractHolidayCalendar, Holiday, nearest_workday, USMartinLutherKingJr, USPresidentsDay, GoodFriday, USMemorialDay, USLaborDay, USThanksgivingDay, USChristmasDay
from pandas.tseries.offsets import CustomBusinessDay
# 自定義節(jié)假日日歷
class CustomCalendar(AbstractHolidayCalendar):
rules = [
Holiday('New Year', month=1, day=1),
Holiday('Independence Day', month=7, day=4),
Holiday('Thanksgiving', month=11, day=1, offset=USThanksgivingDay),
Holiday('Christmas', month=12, day=25)
]
# 設置工作日和節(jié)假日參數(shù)
bday_us = CustomBusinessDay(calendar=CustomCalendar())
holidays = pd.to_datetime(['2021-01-01', '2021-07-04', '2021-11-25', '2021-12-25'])
# 生成2021年的工作日
start_date = '2021-01-01'
end_date = '2021-12-31'
dates = pd.bdate_range(start_date, end_date, freq=bday_us, holidays=holidays)
# 打印結果
print(dates)
上述代碼中,我們定義了一個CustomCalendar
類來表示自定義的節(jié)假日日歷,其中包括了一些常見的節(jié)假日。然后,我們使用CustomBusinessDay
來創(chuàng)建一個自定義的工作日頻率,將自定義的節(jié)假日日歷作為參數(shù)傳遞給它。最后,我們通過pd.bdate_range()
函數(shù)生成2021年的工作日,同時指定了節(jié)假日參數(shù)。最后,我們打印生成的日期結果。
注意:上述代碼是以美國為例,如果需要生成其他地區(qū)的工作日和節(jié)假日,需要根據(jù)相應的節(jié)假日日歷進行調整。