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

Python Pandas - Floor DateTimeIndex với tần suất micro-giây

Để làm tròn xuống (floor) DateTimeIndex đến tần suất micro-giây, dùng DateTimeIndex.floor(freq='us').

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

3. Floor micro-giây

print("\nFloor micro-giây...\n",
      datetimeindex.floor(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("\nFloor micro-giây...\n",
      datetimeindex.floor(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')

Floor micro-giây...
DatetimeIndex(['2021-10-18 07:20:32.261811+10:30', ...],
              dtype='datetime64[ns, Australia/Adelaide]', freq=None)

Giải thích

  • Gốc: .261811624 giây = 261811.624 micro-giây
  • Floor micro-giây: cắt bỏ phần nano-giây → 261811 micro-giây
  • Kết quả: .261811 giây (6 chữ số sau dấu phẩy)

So sánh floor/ceil/round micro-giây

Phép toánKết quả (giây)Giải thích
Gốc.2618116249 chữ số (nano)
floor('us').261811Cắt bỏ nano, giữ micro nguyên
ceil('us').261812Lên micro tiếp theo (vì nano ≥ 500)
round('us').261812Làm tròn gần nhất (nano ≥ 500 → lên)

Lưu ý: floor luôn làm tròn xuống (giảm hoặc giữ nguyên giá trị thời gian).