Python Pandas-从BusinessHour偏移对象中以24小时格式显示自定义工作小时的结束时间

Python Pandas-从BusinessHour偏移对象中以24小时格式显示自定义工作小时的结束时间

简介

Pandas是Python的一个开源数据分析包,提供了很多用于数据操作和处理的函数和方法,其中包括BusinessHour偏移对象,可以指定自定义的工作日上班时间和休息时间。

在使用BusinessHour对象计算日期偏移的工作时间时,需要指定自定义的工作小时结束时间,以便计算到达下一个工作小时的时间。本文将介绍如何使用Python Pandas中的BusinessHour偏移对象并通过自定义的工作小时结束时间以24小时格式显示。

BusinessHour偏移对象

Pandas提供了BusinessHour偏移对象,它可以用来计算时间偏移。BusinessHour对象本质上是时间偏移的一种,它是根据给定的工作日上班时间和工作日休息时间来计算时间偏移。比如计算当下一个工作日的偏移量或者下一个工作小时的偏移量等。默认情况下,BusinessHour对象使用的是周一至周五的9点到17点作为工作时间,这也是许多数据分析师和金融分析师工作日的时间。如果需要自定义工作日和时间,可以使用pandas.tseries.offsets.CustomBusinessHour。

首先,需要导入pandas包:

import pandas as pd

生成一个BusinessHour对象:

bhour = pd.offsets.BusinessHour() 

可以查看一下当前时间,这里我们使用了pandas.Timestamp()方法:

now = pd.Timestamp('2022-01-10 08:00')

假设我们要计算10个工作小时后的时间,可以使用如下代码:

later = now + bhour * 10
print(later)

输出结果如下:

Timestamp('2022-01-13 12:00:00')

这里我们可以看出,10个工作小时后的时间是2022年1月13日的中午12点,这是因为默认情况下,BusinessHour对象使用的是周一至周五的9点到17点作为工作时间。

如果需要自定义工作日和时间,可以使用pandas.tseries.offsets.CustomBusinessHour。

思路:创建CustomBusinessHour偏移对象,重写结束时间的方法,并计算时间偏移。

CustomBusinessHour偏移对象

CustomBusinessHour偏移对象是BusinessHour对象的衍生,是根据给定的工作日上班时间和工作日休息时间来计算时间偏移。与BusinessHour对象不同,CustomBusinessHour对象允许我们自定义工作日和休息日的时间。

需要导入pandas.tseries.offsets.CustomBusinessHour:

from pandas.tseries.offsets import CustomBusinessHour

可以使用如下代码创建一个自定义工作小时时间,设置为周一至周五的10点到16点:

cbhour = CustomBusinessHour(start='10:00', end='16:00', weekmask='Mon Tue Wed Thu Fri')

然后,同样使用pandas.Timestamp()方法查看当前时间:

now = pd.Timestamp('2022-01-10 08:00')

如果要计算10个工作小时后的时间,可以使用如下代码:

later = now + cbhour * 10
print(later)

这里的输出结果是:

Timestamp('2022-01-11 16:00:00')

这里我们可以看出,以自定义工作小时时间计算的10个工作小时后的时间是2022年1月11日的下午4点,这是因为我们设置自定义工作时间是10点到16点,而10个工作小时后的时间正好是下午4点。

以24小时格式显示结束时间

如果我们需要以24小时格式来显示自定义工作小时结束时间,可以使用strftime()方法。

假设我们要计算5个工作小时后的结束时间,并以24小时格式显示:

end_time = now + cbhour * 5
print(end_time.strftime('%Y-%m-%d %H:%M:%S'))

这里我们使用了strftime()方法,将计算得到的end_time以%Y-%m-%d %H:%M:%S的格式输出。

输出结果如下:

2022-01-10 15:00:00

这里我们可以看出,自定义工作小时的结束时间为2022年1月10日下午3点。

完整代码示例

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

# 创建自定义工作小时时间
cbhour = CustomBusinessHour(start='10:00', end='16:00', weekmask='Mon Tue Wed Thu Fri')

# 查看当前时间
now = pd.Timestamp('2022-01-10 08:00')

# 计算10个工作小时后的时间
later = now + cbhour * 10
print(later)

# 计算5个工作小时后的结束时间,并以24小时格式显示
end_time = now + cbhour * 5
print(end_time.strftime('%Y-%m-%d %H:%M:%S'))

结论

本文介绍了如何使用Python Pandas中的BusinessHour偏移对象以及自定义工作小时时间,并且以24小时格式显示自定义工作小时的结束时间。在实际应用中,可以根据需要灵活使用BusinessHour对象和CustomBusinessHour对象,以计算日期时间偏移。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程