Python Pandas CustomBusinessHour – Roll提供的日期后退

Python Pandas CustomBusinessHour – Roll提供的日期后退

在Pandas中,CustomBusinessHour对象定义了一个自定义的工作时间单位,可以用于帮助处理商业小时时间序列。 Roll是一个自定义日期后退函数,它用于在业务时间内将指定日期后退一个指定的数量。

CustomBusinessHour

CustomBusinessHour定义了一个自定义的工作时间单位,可以帮助处理商业小时的时间序列。使用CustomBusinessHour创建时间序列可以处理公共假期和工作日。下面是一个使用CustomBusinessHour创建时间序列的示例代码:

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

# 创建 CustomBusinessHour 对象
biz_hour = CustomBusinessHour(start='09:00', end='18:00', weekmask='Mon Tue Wed Thu Fri', holidays=['2022-10-01'])

# 创建时间序列
time_series = pd.date_range(start='2022-09-28 09:00:00', end='2022-09-30 18:00:00', freq=biz_hour)
print(time_series)

该代码会输出在“2022-9-28 09:00:00”到“2022-9-30 18:00:00”这个时间范围内,除了星期六、星期天及2022-10-01这个日期外,其他工作日内每个小时的时间戳。

Roll

Roll是一个用于指定业务时间内的日期后退函数。其语法为:

pd.Series.dt.ceil(freq, ambiguous='raise').dt.rollback(self, count)

其中,count表示要后退的特定数量。Roll函数与BusinessHour实例一起使用,以确保日期后退到业务时间内。

下面是一个使用Roll函数将日期后退特定数量的示例代码:

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

# 创建 CustomBusinessHour 对象
biz_hour = CustomBusinessHour(start='09:00', end='18:00', weekmask='Mon Tue Wed Thu Fri', holidays=['2022-10-01'])

# 创建时间序列
time_series = pd.date_range(start='2022-09-28 09:00:00', end='2022-09-30 18:00:00', freq=biz_hour)

# 原始日期
current_date = pd.to_datetime('2022-09-30 17:30:00')

# 后退两个日期
new_date = time_series.ceil('1H').to_series().shift(-2).dropna().dt.rollback(2)

print("原始日期:", current_date)
print("后退两个日期:", new_date)

该代码会输出“2022-09-28 10:00:00”和“2022-09-30 15:00:00”这两个特定的日期。

结论

在Pandas中,CustomBusinessHour可以帮助处理商业小时的时间序列。Roll函数可以用于在业务时间内将指定日期后退一个指定数量。这些工具可以用于处理商业时间序列,处理常见假期以及高效处理商业工作时间序列。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程