Để làm tròn DateTimeIndex theo tần suất phút (minute), sử dụng phương thức DateTimeIndex.round() với tham số freq='T'.
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 45 giây, múi giờ Australia/Adelaide:
datetimeindex = pd.date_range('2021-09-29 07:00', periods=5, tz='Australia/Adelaide', freq='45s')
3. Làm tròn theo phút
print("\nLàm tròn theo phút:\n", datetimeindex.round(freq='T'))
Ví dụ hoàn chỉnh
import pandas as pd
datetimeindex = pd.date_range('2021-09-29 07:00', periods=5, tz='Australia/Adelaide', freq='45s')
print("DateTimeIndex:\n", datetimeindex)
print("\nTần suất:", datetimeindex.freq)
print("\nPhút:", datetimeindex.minute)
# Làm tròn theo phút (freq='T')
print("\nLàm tròn theo phút:\n", datetimeindex.round(freq='T'))
Kết quả đầu ra
DateTimeIndex: DatetimeIndex(['2021-09-29 07:00:00+09:30', '2021-09-29 07:00:45+09:30', '2021-09-29 07:01:30+09:30', '2021-09-29 07:02:15+09:30', '2021-09-29 07:03:00+09:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='45S') Tần suất: <45 * Seconds> Phút: Int64Index([0, 0, 1, 2, 3], dtype='int64') Làm tròn theo phút: DatetimeIndex(['2021-09-29 07:00:00+09:30', '2021-09-29 07:01:00+09:30', '2021-09-29 07:02:00+09:30', '2021-09-29 07:02:00+09:30', '2021-09-29 07:03:00+09:30'], dtype='datetime64[ns, Australia/Adelaide]', freq=None)
Giải thích làm tròn
| Gốc | Phút | Giây | Làm tròn | Quy tắc |
|---|---|---|---|---|
| 07:00:00 | 0 | 0 | 07:00:00 | Đã tròn |
| 07:00:45 | 0 | 45 | 07:01:00 | ≥30s → lên 1 phút |
| 07:01:30 | 1 | 30 | 07:02:00 | ≥30s → lên 1 phút |
| 07:02:15 | 2 | 15 | 07:02:00 | <30s → xuống |
| 07:03:00 | 3 | 0 | 07:03:00 | Đã tròn |
Các tần suất thường dùng
'S' # giây
'T' # phút (minute)
'H' # giờ (hour)
'D' # ngày (day)
'W' # tuần (week)
'M' # tháng (month end)
'Y' # năm (year end)