Để làm tròn (round) TimeDeltaIndex với tần suất mili-giây, sử dụng phương thức TimeDeltaIndex.round(). Với tần suất mili-giây, truyền tham số freq bằng giá trị 'ms'.
Các bước thực hiện
1. Import thư viện
import pandas as pd
2. Tạo TimeDeltaIndex với dữ liệu mới
tdIndex = pd.TimedeltaIndex(data=[
'10 day 5h 2 min 3us 10ns',
'+22:39:19.999999',
'2 day 4h 03:08:02.000045',
'+07:20:32.261811624'
])
3. Thực hiện phép round với tần suất mili-giây
print("\nThực hiện phép Round với tần suất mili-giây...\n", tdIndex.round(freq='ms'))
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',
'+07:20:32.261811624'
])
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 mili-giây...\n", tdIndex.round(freq='ms'))
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 07:20:32.261811624'],
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 7 20 32 261 811 624
Thực hiện phép Round với tần suất mili-giây...
TimedeltaIndex(['10 days 05:02:00', '0 days 22:39:20',
'2 days 07:08:02', '0 days 07:20:32.262000'],
dtype='timedelta64[ns]', freq=None)
Giải thích: Khác với floor (luôn làm tròn xuống), phương thức round() làm tròn đến giá trị gần nhất. Phần tử thứ 2: 22:39:19.999999 được làm tròn lên thành 22:39:20 vì phần nano-giây đủ lớn. Phần tử thứ 4: 07:20:32.261811624 được làm tròn thành 07:20:32.262 (262 mili-giây).