Phương thức TimeDeltaIndex.ceil() trong Pandas làm tròn lên (ceiling) các giá trị TimeDeltaIndex đến tần suất chỉ định. Với tần suất microseconds, sử dụng freq='us'.
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=[
'4 day 8h 20min 35us 45ns',
'+17:42:19.999999',
'9 day 3h 08:16:02.000055',
'+22:35:25.000075'
])
3. Hiển thị TimeDeltaIndex
print("TimedeltaIndex...\n", tdIndex)
4. Ceil với tần suất microseconds
print("\nCeil operation với microseconds frequency...\n", tdIndex.ceil(freq='us'))
Ví dụ hoàn chỉnh
import pandas as pd
tdIndex = pd.TimedeltaIndex(data=[
'4 day 8h 20min 35us 45ns',
'+17:42:19.999999',
'9 day 3h 08:16:02.000055',
'+22:35:25.000075'
])
print("TimedeltaIndex...\n", tdIndex)
print("\nDataframe các thành phần TimeDeltas...\n", tdIndex.components)
print("\nCeil operation với microseconds frequency...\n", tdIndex.ceil(freq='us'))
Kết quả đầu ra
TimedeltaIndex...
TimedeltaIndex(['4 days 08:20:00.000035045', '0 days 17:42:19.999999',
'9 days 11:16:02.000055', '0 days 22:35:25.000075'],
dtype='timedelta64[ns]', freq=None)
Dataframe các thành phần TimeDeltas...
days hours minutes seconds milliseconds microseconds nanoseconds
0 4 8 20 0 0 35 45
1 0 17 42 19 999 999 0
2 9 11 16 2 0 55 0
3 0 22 35 25 0 75 0
Ceil operation với microseconds frequency...
TimedeltaIndex(['4 days 08:20:00.000036', '0 days 17:42:19.999999',
'9 days 11:16:02.000055', '0 days 22:35:25.000075'],
dtype='timedelta64[ns]', freq=None)
Giải thích chi tiết:
- Dòng 0: 35μs 45ns → làm tròn lên μs tiếp theo → 36μs
- Dòng 1: 999999μs (gần 1s) → đã là bội số μs → không đổi
- Dòng 2: 55μs → đã là bội số μs → không đổi
- Dòng 3: 75μs → đã là bội số μs → không đổi
Lưu ý: Chỉ dòng 0 có nanosecond (45ns) nên bị làm tròn lên. Các dòng khác đã chính xác đến microsecond.