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

Python Pandas - Làm tròn lên (ceil) DateTimeIndex với tần suất tùy chỉnh

Để làm tròn lên (ceil) các giá trị DateTimeIndex đến tần suất chỉ định, sử dụng phương thức DateTimeIndex.ceil(freq).

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

1. Import thư viện

import pandas as pd

2. Tạo DateTimeIndex

datetimeindex = pd.date_range(
    '2021-10-18 07:20:32.261811624',
    periods=5,
    tz='Australia/Adelaide',
    freq='40S'
)

4. Ceil với tần suất micro-giây ('us')

print("\nCeil với freq='us'...\n",
      datetimeindex.ceil(freq='us'))

Ví dụ hoàn chỉnh

import pandas as pd

datetimeindex = pd.date_range(
    '2021-10-18 07:20:32.261811624',
    periods=5,
    tz='Australia/Adelaide',
    freq='40S'
)

print("DateTimeIndex...\n", datetimeindex)
print("DateTimeIndex frequency...\n", datetimeindex.freq)
print("\nCeil với freq='us'...\n",
      datetimeindex.ceil(freq='us'))

Kết quả đầu ra

DateTimeIndex...
DatetimeIndex(['2021-10-18 07:20:32.261811624+10:30', ...],
              dtype='datetime64[ns, Australia/Adelaide]', freq='40S')

Ceil với freq='us'...
DatetimeIndex(['2021-10-18 07:20:32.261812+10:30', ...],
              dtype='datetime64[ns, Australia/Adelaide]', freq=None)

Giải thích

  • Gốc: .261811624 giây (nano-giây)
  • Ceil micro-giây: làm tròn lên đến micro-giây gần nhất → .261812 (vì 811624 ns > 811000 ns)
  • Kết quả không còn freq vì các giá trị không còn cách đều

Các tần suất freq thường dùng

freqÝ nghĩa
'N' / 'ns'Nano-giây
'U' / 'us'Micro-giây
'L' / 'ms'Mili-giây
'S' / 's'Giây
'T' / 'min'Phút
'H' / 'h'Giờ
'D' / 'd'Ngày

Lưu ý: ceil luôn làm tròn lên (tăng giá trị thời gian). Ngược lại là floor (làm tròn xuống) và round (làm tròn gần nhất).