Để làm tròn TimeDeltaIndex với tần suất giờ, sử dụng phương thức TimeDeltaIndex.round(). Với tần suất giờ, truyền tham số freq bằng giá trị 'H'.
Các bước thực hiện
1. Import thư viện
import pandas as pd
2. Tạo TimeDeltaIndex
tdIndex = pd.TimedeltaIndex(data=[
'10 day 5h 2 min 3us 10ns',
'+22:39:19.999999',
'2 day 4h 03:08:02.000045',
'+21:15:45.999999'
])
3. Thực hiện phép round với tần suất giờ
print("\nThực hiện phép Round với tần suất giờ...\n", tdIndex.round(freq='H'))
Ví dụ hoàn chỉnh
import pandas as pd
tdIndex = pd.TimedeltaIndex(data=[
'10 day 5h 2 min 3us 10ns',
'+22:39:19.999999',
'2 day 4h 03:08:02.000045',
'+21:15:45.999999'
])
print("TimeDeltaIndex...\n", tdIndex)
print("\nDataFrame các thành phần...\n", tdIndex.components)
print("\nThực hiện phép Round với tần suất giờ...\n", tdIndex.round(freq='H'))
Kết quả đầu ra
TimeDeltaIndex...
TimedeltaIndex(['10 days 05:02:00.000003010', '0 days 22:39:19.999999',
'2 days 07:08:02.000045', '0 days 21:15:45.999999'],
dtype='timedelta64[ns]', freq=None)
DataFrame các thành phần...
days hours minutes seconds milliseconds microseconds nanoseconds
0 10 5 2 0 0 3 10
1 0 22 39 19 999 999 0
2 2 7 8 2 0 45 0
3 0 21 15 45 999 999 0
Thực hiện phép Round với tần suất giờ...
TimedeltaIndex(['10 days 05:00:00', '0 days 23:00:00',
'2 days 07:00:00', '0 days 21:00:00'],
dtype='timedelta64[ns]', freq=None)
Giải thích: Phép round với 'H' làm tròn đến giờ gần nhất. Phần tử 1: 5h02' → 5h (2 phút < 30). Phần tử 2: 22h39' → 23h (39 phút ≥ 30, làm tròn lên sang ngày mới). Phần tử 3: 7h08' → 7h. Phần tử 4: 21h15' → 21h.