Pandas可以通过pandas.bdate_range()
函数生成工作日,并通过自定义日历参数来生成节假日。
下面是一个示例,演示如何使用Pandas生成2021年的工作日和自定义的节假日:
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
# 自定义节假日日历
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)
]
# 设置工作日和节假日参数
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
类来表示自定义的节假日日历,其中包括了一些常见的节假日。然后,我们使用CustomBusinessDay
来创建一个自定义的工作日频率,将自定义的节假日日历作为参数传递给它。最后,我们通过pd.bdate_range()
函数生成2021年的工作日,同时指定了节假日参数。最后,我们打印生成的日期结果。
注意:上述代码是以美国为例,如果需要生成其他地区的工作日和节假日,需要根据相应的节假日日历进行调整。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/851326.html