Để 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:
.261811624giây =261.811624mili-giây - Floor mili-giây: cắt bỏ phần micro/nano-giây →
261mili-giây - Kết quả:
.261000giây (3 chữ số sau dấu phẩy, phần dưới = 0)
So sánh floor các tần suất
| freq | Kết quả | Độ chính xác |
|---|---|---|
| Gốc | .261811624 | Nano-giây |
| floor('us') | .261811 | Micro-giây (6 chữ số) |
| floor('ms') | .261000 | Mili-giây (3 chữ số) |
| floor('S') | .000000 | Giâ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ớ.