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 giờ (hourly), sử dụng freq='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=[
'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 giờ
print("\nCeil operation với hourly frequency...\n", tdIndex.ceil(freq='H'))
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 hourly frequency...\n", tdIndex.ceil(freq='H'))
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 hourly frequency...
TimedeltaIndex(['4 days 09:00:00', '0 days 18:00:00',
'9 days 12:00:00', '0 days 23:00:00'],
dtype='timedelta64[ns]', freq=None)
Giải thích chi tiết:
- Dòng 0: 08:20... → làm tròn lên giờ tiếp theo → 09:00:00
- Dòng 1: 17:42... → làm tròn lên → 18:00:00
- Dòng 2: 11:16... → làm tròn lên → 12:00:00
- Dòng 3: 22:35... → làm tròn lên → 23:00:00
Tóm tắt series Ceil TimeDeltaIndex
| freq | Kết quả dòng 0 | Kết quả dòng 1 |
|---|---|---|
'H' |
4 days 09:00:00 | 0 days 18:00:00 |
'T' |
4 days 08:21:00 | 0 days 17:43:00 |
'S' |
4 days 08:20:01 | 0 days 17:42:20 |
'ms' |
4 days 08:20:00.001 | 0 days 17:42:20 |
'us' |
4 days 08:20:00.000036 | 0 days 17:42:19.999999 |
Càng thô (coarse) tần suất thì càng làm tròn mạnh hơn.