📌  相关文章
📜  Python| Pandas tseries.offsets.CustomBusinessHour.onOffset(1)

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

Python | Pandas tseries.offsets.CustomBusinessHour.onOffset

CustomBusinessHourpandas.tseries.offsets模块中的一个类,用于定义自定义的营业小时偏移量。onOffset是其一个方法,用于计算偏移量。

语法
    CustomBusinessHour.onOffset(timestamp, offset, roll)
参数说明
  • timestamp:要计算的时间戳或时间戳列表或时间段或时间段列表。
  • offset:时间偏移量对象,必须是CustomBusinessHour或其子类的实例。
  • roll:是否将偏移量向前或向后移动一个单位(例如,一天或一个月)。
返回值

计算后的与输入参数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方法将偏移量应用于时间戳timestampoffset参数传入cust_biz_min对象,roll=True表示将偏移量向前移动一个小时。最后输出处理后的时间戳。

以上就是Python | Pandas tseries.offsets.CustomBusinessHour.onOffset方法的介绍。