📅  最后修改于: 2023-12-03 15:04:27.197000             🧑  作者: Mango
在 Pandas 数据处理库中,tseries.offsets.CustomBusinessDay.rollback 方法用于计算给定日期往回的一个工作日或多个工作日。该方法是一个 BusinessDay 直接继承类,并通过实现其 AbstractBusinessDay 对象中的 rollforward 和 rollback 方法来完成。
CustomBusinessDay.rollback(self, dates, **kwargs)
dates: 指定的 pandas Timestamp 或 DatetimeIndex 对象,需要计算的日期列表。
kwargs: 关键字参数,可以传入以下参数:
n: 往回计算的工作日数。
weekmask: 一个长度为7的布尔列表,指定了一周的每一天是否为工作日,True表示工作日,False表示非工作日。默认为星期一至星期五工作,星期六、星期日休息。
holidays: 指定一组日期作为非工作日,在计算工作日的时候会排除这些日期。
返回一个与输入日期相同长度的 DatetimeIndex。
>>> from pandas.tseries.offsets import CustomBusinessDay
>>> from pandas import Timestamp, date_range
>>> bday = CustomBusinessDay(weekmask='Sun Mon Tue Wed Thu')
>>> dates = date_range(start='2021-07-01', end='2021-07-10', freq='D')
>>> bday.rollback(dates, n=1)
DatetimeIndex(['2021-07-09'], dtype='datetime64[ns]', freq=None)
上面的示例中,创建了一个自定义的 BusinessDay 对象 bday,指定了周一至周五为工作日,周六、周日为非工作日。然后创建一个日期范围 dates,从 2021-07-01 到 2021-07-10,默认每一天都是工作日。最后调用 bday.rollback 方法,往回计算 n=1 个工作日,返回 2021-07-09 这一天。