📌  相关文章
📜  Python|熊猫 tseries.offsets.BusinessDay.rollforward(1)

📅  最后修改于: 2023-12-03 15:19:21.459000             🧑  作者: Mango

Python | 熊猫 BusinessDay

熊猫库提供了一个很方便的方式来计算日期偏移量,调用offsets模块可以快速找到各种日历单位的日期偏移类。

在日期计算场景中,通常需要一些比较通用的日期偏移量,比如:加上一天、一个月、一年等等。对于这些比较通用的需求,熊猫库中提供了非常便利的类——BusinessDay,该类支持各种日期加减操作,同时也有很多其他的配置项。

BusinessDay类

BusinessDay类定义了工作日的日期计算规则,实现了在工作日之间加减天数的功能,并支持其他配置项。

在实际使用中,我们可以创建一个BusinessDay类的实例,通过配置参数来确定要修改的日期,最后调用rollforwardrollback方法获得偏移后的日期值。

下面我们来看看BusinessDay类的常用参数和方法。

参数

| 参数 | 类型 | 描述 | | -- | -- | -- | | n | int | 要修改的工作日数量,默认为1 |

方法

rollforward

rollforward方法返回“向前偏移”后的日期值。

from pandas.tseries.offsets import BusinessDay

offset = BusinessDay()
date = pd.Timestamp('2022-10-01')
result = offset.rollforward(date)
print(result)

rollback

rollback方法返回“向后偏移”后的日期值。

from pandas.tseries.offsets import BusinessDay

offset = BusinessDay()
date = pd.Timestamp('2022-10-03')
result = offset.rollback(date)
print(result)
例子

比如现在是2022年10月1日,那么如何计算出下一个工作日是哪天呢?

import pandas as pd
from pandas.tseries.offsets import BusinessDay

offset = BusinessDay()
date = pd.Timestamp('2022-10-01')
result = offset.rollforward(date)
print(result)

输出:

2022-10-03 00:00:00

可以看到,下一个工作日是10月3日。

再比如,如果今天是工作日,那么昨天是不是工作日呢?

import pandas as pd
from pandas.tseries.offsets import BusinessDay

offset = BusinessDay()
date = pd.Timestamp('2022-10-05')
result = offset.rollback(date)
print(result)

输出:

2022-10-04 00:00:00

可以看到,10月4日是工作日,因此昨天也是工作日。

结论

熊猫的BusinessDay类提供了方便的日期计算方式,可以帮助我们快速计算出工作日的偏移量。在实际应用中,我们可以通过配置参数指定偏移量和其他参数,通过调用rollforwardrollback方法获得偏移后的日期值。