Python Pandas CustomBusinessHour - 仅当不在偏移量时才将提供的日期向前滚动到下一个偏移量

要将提供的日期前滚到下一个偏移量(如果不在偏移量上),请使用Pandas 中的方法。CustomBusinessHour.rollforward()

首先,导入所需的库 -

import pandas as pd

在 Pandas 中设置时间戳对象 -

timestamp = pd.Timestamp('2021-12-20 08:35:10')

创建 CustomBusinessHour 偏移量。CustomBusinessHour 是 DateOffset 子类。有效工作日的周掩码 -

cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 5, weekmask = 'Mon Tue Wed Fri')

将偏移量添加到时间戳并显示更新的时间戳 -

print("\nUpdated Timestamp...\n",timestamp + cbhOffset)

如果不在偏移上,则向前滚动 -

roll = cbhOffset.rollforward(pd.Timestamp('2021-12-30 08:35:10'))

显示结果 -

print("\nRoll forward Result...\n",roll)

示例

以下是代码 -

import pandas as pd

# Set the timestamp object in Pandas
timestamp = pd.Timestamp('2021-12-20 08:35:10')

# Display the Timestamp
print("Timestamp...\n",timestamp)

# Create the CustomBusinessHour Offset
# CustomBusinessHour is the DateOffset subclass
# Weekmask of valid business days
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 5, weekmask = 'Mon Tue Wed Fri')

# Display the CustomBusinessHour Offset
print("\nCustomBusinessHour Offset...\n",cbhOffset)

# Add the offset to the Timestamp and display the Updated Timestamp
print("\nUpdated Timestamp...\n",timestamp + cbhOffset)

# roll forward if not on offset
roll = cbhOffset.rollforward(pd.Timestamp('2021-12-30 08:35:10'))

# display the result
print("\nRoll forward Result...\n",roll)
输出结果

这将产生以下代码 -

Timestamp...
 2021-12-20 08:35:10

CustomBusinessHour Offset...
 <5 * CustomBusinessHours: CBH=09:00-17:00>

Updated Timestamp...
 2021-12-20 14:00:00

Roll forward Result...
 2021-12-31 09:00:00

猜你喜欢