📅  最后修改于: 2023-12-03 15:19:16.371000             🧑  作者: Mango
CustomBusinessHour
是pandas.tseries.offsets
模块中的一个类,用于定义自定义的营业小时偏移量。onOffset
是其一个方法,用于计算偏移量。
CustomBusinessHour.onOffset(timestamp, offset, roll)
CustomBusinessHour
或其子类的实例。计算后的与输入参数timestamp
类型相同的时间戳或时间戳列表。
下面的示例将解释如何使用CustomBusinessHour.onOffset
方法。
首先,我们需要创建一个自定义的营业小时偏移量:
from pandas.tseries.offsets import CustomBusinessHour
class CustomBusinessMinute(CustomBusinessHour):
def __init__(self, minute=0, second=0):
self.minute = minute
self.second = second
CustomBusinessHour.__init__(self, start='09:00', end='17:00', weekdays=(0,1,2,3,4))
def onOffset(self, dt):
dt += self.minute * 60 + self.second
dt += self.roll
return self.rollHour(dt)
以上定义的类CustomBusinessMinute
表示在营业时间内,每小时开始的第minute
分钟和第second
秒钟被计算为偏移量。
接下来,我们将使用onOffset
方法将偏移量应用于时间戳。假设我们想将2022-06-01 08:00:00
转换为自定义的营业分钟,如下所示:
import pandas as pd
import datetime as datetime
timestamp = pd.to_datetime("2022-06-01 08:00:00")
cust_biz_min = CustomBusinessMinute(minute=15)
print(cust_biz_min.onOffset(timestamp=timestamp, offset=cust_biz_min, roll=True))
输出:
Timestamp('2022-06-01 09:15:00')
上述代码中,我们首先通过pd.to_datetime()
将时间字符串转换为时间戳,并创建了一个CustomBusinessMinute
对象cust_biz_min
来表示在营业时间内,每小时开始的第15分钟被视为自定义的营业分钟。
然后,我们调用onOffset
方法将偏移量应用于时间戳timestamp
,offset
参数传入cust_biz_min
对象,roll=True
表示将偏移量向前移动一个小时。最后输出处理后的时间戳。
以上就是Python | Pandas tseries.offsets.CustomBusinessHour.onOffset
方法的介绍。