Python Pandas – 创建CustomBusinessDay偏移量对象

Python Pandas – 创建CustomBusinessDay偏移量对象

在Pandas中,CustomBusinessDay对象可以用来进行自定义的工作日计算。

更多Pandas相关文章,请阅读:Pandas 教程

CustomBusinessDay的创建

使用Pandas的CustomBusinessDay函数可以创建自定义的工作日。我们来看一个例子:

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

# 创建工作日偏移量对象
my_offset = CustomBusinessDay(weekmask='Sun Mon Tue Wed Thu', holidays=['2021-10-01'])

# 创建日期范围
date_rng = pd.date_range(start='2021-09-28', end='2021-10-05', freq=my_offset)

# 输出日期范围
for date in date_rng:
    print(date.date())

在上面的代码中,我们首先导入了Pandas和CustomBusinessDay。然后,我们使用CustomBusinessDay创建了一个工作日偏移量对象my_offset,其中指定了周一到周五为工作日,而10月1日为假日。

接下来,我们使用pd.date_range创建了一个包括2021-09-282021-10-05之间所有符合工作日偏移量要求的日期范围,并用for循环遍历输出。

输出的结果为:

2021-09-28
2021-09-29
2021-09-30
2021-10-03
2021-10-04
2021-10-05

可以看到,除了10月1日这个假日之外,其它的所有符合要求的日期都被正确输出了。

自定义工作日

除了上面的例子外,我们还可以创建更为复杂的CustomBusinessDay对象。下面是一个例子:

from pandas.tseries.offsets import CustomBusinessDay
from pandas.tseries.holiday import USFederalHolidayCalendar
from datetime import time

# 创建工作日偏移量对象
my_offset = CustomBusinessDay(calendar=USFederalHolidayCalendar(), weekmask='Mon Tue Wed Thu Fri', start='09:00', end='16:00')

# 创建日期范围
date_rng = pd.date_range(start='2021-09-27', end='2021-10-04', freq=my_offset)

# 输出日期范围
for date in date_rng:
    print(date)

上面的代码中,我们使用了Pandas中内置的USFederalHolidayCalendar对象作为假日,指定了周一到周五为工作日,并且定义了工作时间段为9点到16点。

因此,在执行上述代码后,结果如下:

2021-09-27 09:00:00
2021-09-28 09:00:00
2021-09-29 09:00:00
2021-09-30 09:00:00
2021-10-01 09:00:00
2021-10-04 09:00:00

值得注意的是,我们在输出日期时,得到的日期都包括了定义的工作时间段的起始时间9点。

结论

CustomBusinessDay是一个十分实用的工具,可以用来帮助我们计算工作日。通过创建不同的CustomBusinessDay对象,我们可以自定义出符合实际需要的工作日,然后通过它来计算日期范围。虽然在使用时可能较为繁琐,但只要熟悉了相关的用法,我们就可以针对不同情况调整自定义工作日的参数,以应对各种日期计算需求。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Pandas 教程