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

Python Pandas - Round DateTimeIndex với tần suất bội số đơn vị

Để làm tròn (round) DateTimeIndex đến tần suất là bội số của đơn vị (ví dụ: 10 phút, 15 phút, 30 giây), dùng DateTimeIndex.round(freq='10T').

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 giờ)

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

3. Round 10 phút

print("\nRound 10 phút...\n",
      datetimeindex.round(freq='10T'))

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='H'
)

print("DateTimeIndex...\n", datetimeindex)
print("DateTimeIndex frequency...\n", datetimeindex.freq)
print("\nRound 10 phút...\n",
      datetimeindex.round(freq='10T'))

Kết quả đầu ra

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

Round 10 phút...
DatetimeIndex(['2021-09-29 07:20:00+09:30', '2021-09-29 08:20:00+09:30',
               '2021-09-29 09:20:00+09:30', '2021-09-29 10:20:00+09:30',
               '2021-09-29 11:20:00+09:30'],
              dtype='datetime64[ns, Australia/Adelaide]', freq=None)

Giải thích

  • Gốc: 07:20:32, 08:20:32, 09:20:32, 10:20:32, 11:20:32
  • Round 10 phút: làm tròn đến bội số 10 phút gần nhất
    • 20:32 → 20:00 (32 < 35, gần 20 hơn 30)
    • Kết quả: tất cả đều về :20:00 vì phần phút = 20, giây = 32 < 35

Các tần suất bội số thường dùng

freqÝ nghĩaVí dụ ranh giới
'15T' / '15min'15 phút00, 15, 30, 45
'30T' / '30min'30 phút00, 30
'10S'10 giây00, 10, 20, 30, 40, 50
'5T'5 phút00, 05, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55
'2H'2 giờ00:00, 02:00, 04:00...

Ứng dụng: Căn chỉnh timestamp về lưới thời gian chuẩn (15p, 30p, 1h) cho báo cáo, resample, visualization.