解释:定制offset,可以指定weekmask和holidays参数(思考为什么三个都是一个值)
pd.Series(
[
pd.offsets.CDay(3, weekmask="Wed Fri", holidays="2020010") + i
for i in pd.date_range("20200105", periods=3, freq="D")
]
)
注意:此处的源代码采用的 .apply(i)
是会报错的,offset对象没有apply函数。
解释为何三个都是同一个值:
本质是只有日期在weekmask
里才会进行偏移且偏移是在weekmask
里进行的,即跳过三个自定义的工作日。看下图举例:
20200105
为周日,跳三个weekmask中的值就是从8号开始起跳第一个、第二个就是10号、第三个就是15号,即周三-周五-周三
,结果为20200115
,同理20200106和20200107往前跳三个weekmask值得到的是同样的结果。
如果holidays的值和weekmask的值有重叠,默认不做处理。即把holidays设为“20200115”,默认情况下还是会输出20200115,并不会跳过。