Python Pandas – 将给定的 CustomBusinessHour Offset 对象应用的频率返回为字符串
在 Pandas 中,我们可以使用自定义商务小时 CustomBusinessHour Offset 对象来指定一个日期偏移量,这非常有用,因为许多企业具有不同于标准 9:00-17:00 的商务小时时间。本文将介绍如何将给定的 CustomBusinessHour Offset 对象应用的频率返回为字符串。
安装 Pandas
在开始使用 Pandas 之前,需要先安装 Pandas 库。可以使用以下命令来安装 Pandas:
pip install pandas
创建 CustomBusinessHour Offset
定义 CustomBusinessHour Offset 需要指定一个起始和结束时间,例如下面的例子是定义一个从每周一早上 10:00 到每周五下午 3:00 的商务小时:
from pandas.tseries.offsets import CustomBusinessHour
bhour = CustomBusinessHour(start='10:00', end='15:00', weekmask='Mon Tue Wed Thu Fri')
应用 CustomBusinessHour Offset
定义了 CustomBusinessHour Offset 后,可以将其应用于 Pandas 的日期时间索引,例如:
import pandas as pd
dates = pd.date_range('2022-01-01 00:00', periods=10, freq='H')
business_dates = dates[dates.indexer_between_time('10:00', '15:00')[1::2]]
offset = CustomBusinessHour(start='10:00', end='15:00', weekmask='Mon Tue Wed Thu Fri')
custom_dates = pd.DatetimeIndex(offset.apply(business_dates))
print(custom_dates)
上面的代码中,我们先使用 pd.date_range() 创建一个包含 10 个小时的日期时间索引。然后,我们使用 dates.indexer_between_time() 索引出商务小时的时间。最后,我们定义了一个 CustomBusinessHour Offset,并将其用于商务小时的时间,得到了定制化的日期时间索引。
将频率返回为字符串
在应用 CustomBusinessHour Offset 之后,可以使用 offset.freqstr 属性返回定制化的频率,例如:
import pandas as pd
dates = pd.date_range('2022-01-01 00:00', periods=10, freq='H')
business_dates = dates[dates.indexer_between_time('10:00', '15:00')[1::2]]
offset = CustomBusinessHour(start='10:00', end='15:00', weekmask='Mon Tue Wed Thu Fri')
custom_dates = pd.DatetimeIndex(offset.apply(business_dates))
freqstr = offset.freqstr
print("Frequency string:", freqstr)
上面的代码中,我们先将自定义商务小时应用于商务小时的时间,得到了定制化的日期时间索引。然后,使用 offset.freqstr 属性返回定制化的频率字符串。
结论
本文介绍了如何使用 Pandas 中的 CustomBusinessHour Offset 对象来应用定制化的商务小时,以及如何将定制化的频率返回为字符串。这对于处理企业的日期时间数据非常有用,可以更好地反映实际情况。
极客笔记