如何将日期时间移动到最接近的五分钟?

How can I move datetime to the closest five minutes?

提问人:slow_learner 提问时间:11/16/2023 更新时间:11/16/2023 访问量:26

问:

我正在使用 pandas 中的数据帧。在此数据帧中,有一列的类型为 datetime。它代表产品销售的时刻,其他列表示价格、类型、销售金额、剩余金额......

为了进行分析,我想要更多的日期时间列来检查以 5 分钟到 1 小时的间隔售出多少产品。我需要将日期时间数据转换为上面的五分钟。

以 5 分钟为例:

2023-11-16 13:17:32 将变成 2023-11-16 13:20:00,2023-11-16 13:21:09 将变成 2023-11-16 13:25:00 依此类推。

对于 1 小时的情况,它们都将变成 2023-11-16 14:00:00。

这能做到吗?

我知道函数 ceil 和 floor,但我不知道如何以日期时间格式使用它们

python pandas 数据帧 日期时间 ceil

评论


答:

2赞 PaulS 11/16/2023 #1

一种可能的解决方案,它使用 pandas。Series.dt.ceil

df = pd.DataFrame({
    'col': pd.to_datetime([
        '2023-11-16 13:17:32',
        '2023-11-16 13:21:09',
    ])
})

df['rounded_5m'] = df['col'].dt.ceil('5T')
df['rounded_1h'] = df['col'].dt.ceil('1H')

输出:

                  col          rounded_5m          rounded_1h
0 2023-11-16 13:17:32 2023-11-16 13:20:00 2023-11-16 14:00:00
1 2023-11-16 13:21:09 2023-11-16 13:25:00 2023-11-16 14:00:00