Pandas假日到Dataframe和Holiday Nam

2024-10-01 15:33:50 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我目前为止的代码:

year = 2012
start = datetime.date(year, 1, 1)
end = start + pd.offsets.MonthEnd(72)

class FrBusinessCalendar(AbstractHolidayCalendar):
""" Custom Holiday calendar 
"""
rules = [
    Holiday('New Years Day', month=1, day=1),
    #USThanksgivingDay,
    Holiday('Fourth Of July', month=7, day=4),
    Holiday('Thanksgiving', month=11, day=1, offset=DateOffset(weekday=TH(4))),
    Holiday('Black Friday', month=11, day=1, offset=pd.DateOffset(weekday=FR(4))),
    Holiday("Cyber Monday", month=11, day=1, offset=[pd.DateOffset(weekday=SA(4)), pd.DateOffset(2)]),
    Holiday('Christmas Day', month=12, day=25)
]

cal = FrBusinessCalendar()
# Getting the holidays (off-days) between two dates
cal.holidays(start=start, end=end)

现在,我要做的是将所有这些日期放入一个数据帧中,其中一列是假日的名称,另一列是日期。以我为例。。。在

^{pr2}$

Tags: 代码holidaysyearstartoffsetcalendpd
1条回答
网友
1楼 · 发布于 2024-10-01 15:33:50

我们可以使用cal.holidays(return_name=True)方法:

In [85]: holidays = cal.holidays(start=start, end=end, return_name=True)

In [86]: pd.options.display.max_rows = 20

In [87]: holidays
Out[87]:
2012-01-01     New Years Day
2012-07-04    Fourth Of July
2012-11-22      Thanksgiving
2012-11-23      Black Friday
2012-11-26      Cyber Monday
2012-12-25     Christmas Day
2013-01-01     New Years Day
2013-07-04    Fourth Of July
2013-11-22      Black Friday
2013-11-25      Cyber Monday
                   ...
2016-11-24      Thanksgiving
2016-11-25      Black Friday
2016-11-28      Cyber Monday
2016-12-25     Christmas Day
2017-01-01     New Years Day
2017-07-04    Fourth Of July
2017-11-23      Thanksgiving
2017-11-24      Black Friday
2017-11-27      Cyber Monday
2017-12-25     Christmas Day
Length: 36, dtype: object

或者以您想要的格式:

^{pr2}$

相关问题 更多 >

    热门问题