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 seconds, sử dụng freq='S'.
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 seconds
print("\nCeil operation với seconds frequency...\n", tdIndex.ceil(freq='S'))
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 seconds frequency...\n", tdIndex.ceil(freq='S'))
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 seconds frequency...
TimedeltaIndex(['4 days 08:20:01', '0 days 17:42:20',
'9 days 11:16:03', '0 days 22:35:26'],
dtype='timedelta64[ns]', freq=None)
Giải thích chi tiết:
- Dòng 0: 00.000035045s → làm tròn lên giây tiếp theo → 01s
- Dòng 1: 19.999999s → làm tròn lên → 20s
- Dòng 2: 02.000055s → làm tròn lên → 03s
- Dòng 3: 25.000075s → làm tròn lên → 26s
So sánh ceil vs floor vs round:
| Phương thức | Hành vi | Ví dụ (1.3s) |
|---|---|---|
ceil('S') |
Làm tròn lên | 2s |
floor('S') |
Làm tròn xuống | 1s |
round('S') |
Làm tròn gần nhất | 1s |