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 phút

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 phút (minutely), sử dụng freq='T' hoặc freq='min'.

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 phút

print("\nCeil operation với minutely frequency...\n", tdIndex.ceil(freq='T'))

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 minutely frequency...\n", tdIndex.ceil(freq='T'))

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 minutely frequency...
TimedeltaIndex(['4 days 08:21:00', '0 days 17:43:00', 
                '9 days 11:17:00', '0 days 22:36:00'], 
               dtype='timedelta64[ns]', freq=None)

Giải thích chi tiết:

  • Dòng 0: 20:00.000035 → làm tròn lên phút tiếp theo → 21:00
  • Dòng 1: 17:42:19.999999 → làm tròn lên → 17:43:00
  • Dòng 2: 11:16:02.000055 → làm tròn lên → 11:17:00
  • Dòng 3: 22:35:25.000075 → làm tròn lên → 22:36:00

Lưu ý: freq='T' và freq='min' là tương đương (cả hai đều chỉ Minute).