Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Pandas: Thực hiện ceil operation trên TimeDeltaIndex với tần suất giờ

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.