Python 熊猫节的习俗

Python 熊猫节的习俗,python,python-3.x,pandas,datetime,time-series,Python,Python 3.x,Pandas,Datetime,Time Series,我想创建一个圣诞节和后天假期的类,但我遇到了一个问题。有三分之一的特殊情况我不能完全解决 案例1:圣诞节是星期五,然后是星期五(12-25)和星期六(12-26)(已解决)。这种情况发生在2020年 案例2:圣诞节是星期六,然后是星期六(12-25)和星期一(12-27)(已解决)。这种情况发生在2021年 案例3:圣诞节是星期天,然后是星期一(12-26)和星期二(12-27)(未解决)。这起案件发生在2016年 如果遵守=星期一到星期二可用,则案例3可以解决,但遗憾的是,它不可用,这就是我在

我想创建一个圣诞节和后天假期的类,但我遇到了一个问题。有三分之一的特殊情况我不能完全解决

案例1:圣诞节是星期五,然后是星期五(12-25)和星期六(12-26)(已解决)。这种情况发生在2020年

案例2:圣诞节是星期六,然后是星期六(12-25)和星期一(12-27)(已解决)。这种情况发生在2021年

案例3:圣诞节是星期天,然后是星期一(12-26)和星期二(12-27)(未解决)。这起案件发生在2016年

如果
遵守=星期一到星期二
可用,则案例3可以解决,但遗憾的是,它不可用,这就是我在这里寻求帮助的原因,因为没有任何关于创建自定义遵守或任何关于遵守从任何工作日开始的情况的说明

我正在学习的课程如下:



有没有办法解决我的问题?提前感谢您

您可以按照以下步骤滚动您自己的观察功能。它们只是常规python函数,因此您也可以使用lambda,如下所示:

from pandas.tseries.holiday import Holiday, sunday_to_monday, AbstractHolidayCalendar

import pandas as pd
import datetime as dt

class MyHolidays(AbstractHolidayCalendar):
    rules = [Holiday('Christmas',month=12,day=25, observance= sunday_to_monday),
             Holiday('Boxingday',month=12,day=26, observance= lambda d: d + dt.timedelta(1) if d.weekday() == 0 or d.weekday() == 6 else d )]

cal= MyHolidays()

if __name__ == '__main__':
    myholidays =cal.holidays(start = dt.datetime(2016,1,1), end=dt.datetime(2021,12,31))
    temp_s = pd.Series(myholidays)
    print(temp_s)
输出:

0    2016-12-26
1    2016-12-27
2    2017-12-25
3    2017-12-26
4    2018-12-25
5    2018-12-26
6    2019-12-25
7    2019-12-26
8    2020-12-25
9    2020-12-26
10   2021-12-25
11   2021-12-27

看过你链接的github代码后,我想知道如何深入研究流行模块(如pandas)的源代码?你可以在线浏览,也可以将git克隆到你的计算机上。通常,可以从pypi.org的项目链接中找到源代码。Python本身也在运行。
0    2016-12-26
1    2016-12-27
2    2017-12-25
3    2017-12-26
4    2018-12-25
5    2018-12-26
6    2019-12-25
7    2019-12-26
8    2020-12-25
9    2020-12-26
10   2021-12-25
11   2021-12-27