Python Pandas - 如何按小时频率对 DateTimeIndex 进行舍入

pythonserver side programmingprogramming更新于 2026/1/20 2:20:17

要按小时频率对 DateTimeIndex 进行舍入,请使用 DateTimeIndex.round() 方法。对于每小时频率,请使用值为"H"的 freq  参数。

首先,导入所需的库 −

import pandas as pd

创建一个 DatetimeIndex,周期为 5,频率为 T,即分钟 −

datetimeindex = pd.date_range('2021-09-29 07:00', periods=5, tz='Australia/Adelaide', freq='35T')

显示 DateTimeIndex −

print("DateTimeIndex...\n", datetimeindex)

按小时频率对 DateTimeIndex 日期进行舍入运算。对于小时频率,我们使用了 'H' −

print("\n按小时频率执行舍入操作...\n",
datetimeindex.round(freq='H'))

示例

以下是代码 −

import pandas as pd

# DatetimeIndex 周期为 5,频率为 T,即分钟
# 时区为澳大利亚/阿德莱德
datetimeindex = pd.date_range('2021-09-29 07:00', periods=5, tz='Australia/Adelaide', freq='35T')

#显示
print("DateTimeIndex...\n", datetimeindex)

# 获取小时
res = datetimeindex.hour
# 仅显示小时
print("\nDateTimeIndex 中的小时...\n", res)

# 按小时频率对 DateTimeIndex 日期进行舍入操作
# 对于小时频率,我们使用了 'H'
print("\n按小时频率执行舍入操作...\n",
datetimeindex.round(freq='H'))

输出

这将产生以下代码 −

DateTimeIndex...
DatetimeIndex(['2021-09-29 07:00:00+09:30', '2021-09-29 07:35:00+09:30',
'2021-09-29 08:10:00+09:30', '2021-09-29 08:45:00+09:30',
'2021-09-29 09:20:00+09:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq='35T')

DateTimeIndex 中的小时...
Int64Index([7, 7, 8, 8, 9], dtype='int64')

按小时频率执行舍入操作...
DatetimeIndex(['2021-09-29 07:00:00+09:30', '2021-09-29 08:00:00+09:30',
'2021-09-29 08:00:00+09:30', '2021-09-29 09:00:00+09:30',
'2021-09-29 09:00:00+09:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq=None)

相关文章


有用资源