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

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

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

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. Hiển thị DateTimeIndex

print("DateTimeIndex...\n", datetimeindex)

4. Floor mili-giây

print("\nFloor mili-giây...\n",
      datetimeindex.floor(freq='ms'))

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 mili-giây...\n",
      datetimeindex.floor(freq='ms'))

Kết quả đầu ra

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

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

Giải thích

  • Gốc: .261811624 giây = 261.811624 mili-giây
  • Floor mili-giây: cắt bỏ phần micro/nano-giây → 261 mili-giây
  • Kết quả: .261000 giây (3 chữ số sau dấu phẩy, phần dưới = 0)

So sánh floor các tần suất

freqKết quảĐộ chính xác
Gốc.261811624Nano-giây
floor('us').261811Micro-giây (6 chữ số)
floor('ms').261000Mili-giây (3 chữ số)
floor('S').000000Giây nguyên

Ứng dụng: Bucketing timestamp theo mili-giây, nhóm log theo mili-giây, giảm độ chính xác để tiết kiệm bộ nhớ.