我想在一个额外的列中将我的时间序列(来自中国的数据)中的日子标记为假日(布尔真)和非假日(布尔假)。
我是这个话题的新手,目前我正试图找出解决这个问题的方法。
我在 2020 年有以下日子作为中国法定节假日:
据我所知,中国没有开箱即用的日历,所以我必须创建一个自定义日历,如下所示:
from pandas.tseries.holiday import Holiday,AbstractHolidayCalendar
class ChineseHolidays(AbstractHolidayCalendar):
rules = [Holiday('Chinese New Year', month=1, day=25),
'Question: How to add more than one day?',
etc,
...]
cal = ChineseHolidays()
接下来的步骤是创建 Holidays 列,如下所示:
holidays = cal.holidays(start=X['timestamp'].min(), end = X['timestamp'].max())
X.assign(Holidays=X['timestamp'].isin(cal.holidays()).astype(int))
我的问题是:
1)这通常是一个合适的方法吗?
2) 如何在 Holiday('Chinese New Year', month=1, day=25) 行中定义从 1 月 24 日开始到 1 月 30 日结束的日子?有没有办法定义休息日而不是只定义一天?
谢谢你的帮助。
最好的,
B.