Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Pandas - Ceil DateTimeIndex với tần suất giờ

Để làm tròn lên (ceil) DateTimeIndex đến tần suất giờ, dùng DateTimeIndex.ceil(freq='H').

Các bước thực hiện

1. Import thư viện

import pandas as pd

2. Tạo DateTimeIndex (tần suất 20 phút)

datetimeindex = pd.date_range(
    '2021-09-29 07:20:32.261811624',
    periods=5,
    tz='Australia/Adelaide',
    freq='20min'
)

3. Ceil giờ

print("\nCeil giờ...\n",
      datetimeindex.ceil(freq='H'))

Ví dụ hoàn chỉnh

import pandas as pd

datetimeindex = pd.date_range(
    '2021-09-29 07:20:32.261811624',
    periods=5,
    tz='Australia/Adelaide',
    freq='20min'
)

print("DateTimeIndex...\n", datetimeindex)
print("DateTimeIndex frequency...\n", datetimeindex.freq)
print("\nCeil giờ...\n",
      datetimeindex.ceil(freq='H'))

Kết quả đầu ra

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

Ceil giờ...
DatetimeIndex(['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',
               '2021-09-29 09:00:00+09:30'],
              dtype='datetime64[ns, Australia/Adelaide]', freq=None)

Giải thích

  • Gốc: 07:20, 07:40, 08:00, 08:20, 08:40 (có phút/giây lẻ)
  • Ceil giờ: làm tròn lên đến giờ nguyên tiếp theo
    • 07:20 → 08:00
    • 07:40 → 08:00
    • 08:00 (có giây lẻ) → 09:00
    • 08:20 → 09:00
    • 08:40 → 09:00
  • Phút/giây/phân giây reset về 0

Tóm tắt ceil/floor/round theo giờ

Thời gian gốcceil('H')floor('H')round('H')
07:20:3208:00:0007:00:0007:00:00
07:40:3208:00:0007:00:0008:00:00
08:00:3209:00:0008:00:0008:00:00

round làm tròn đến giờ gần nhất (30 phút là ngưỡng).