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

Python Pandas - Làm tròn TimeDeltaIndex với tần suất mili-giây

Để làm tròn (round) TimeDeltaIndex với tần suất mili-giây, sử dụng phương thức TimeDeltaIndex.round(). Với tần suất mili-giây, truyền tham số freq bằng giá trị 'ms'.

Các bước thực hiện

1. Import thư viện

import pandas as pd

2. Tạo TimeDeltaIndex với dữ liệu mới

tdIndex = pd.TimedeltaIndex(data=[
    '10 day 5h 2 min 3us 10ns',
    '+22:39:19.999999',
    '2 day 4h 03:08:02.000045',
    '+07:20:32.261811624'
])

3. Thực hiện phép round với tần suất mili-giây

print("\nThực hiện phép Round với tần suất mili-giây...\n", tdIndex.round(freq='ms'))

Ví dụ hoàn chỉnh

import pandas as pd

tdIndex = pd.TimedeltaIndex(data=[
    '10 day 5h 2 min 3us 10ns',
    '+22:39:19.999999',
    '2 day 4h 03:08:02.000045',
    '+07:20:32.261811624'
])

print("TimeDeltaIndex...\n", tdIndex)
print("\nDataFrame các thành phần...\n", tdIndex.components)
print("\nThực hiện phép Round với tần suất mili-giây...\n", tdIndex.round(freq='ms'))

Kết quả đầu ra

TimeDeltaIndex...
TimedeltaIndex(['10 days 05:02:00.000003010', '0 days 22:39:19.999999',
                '2 days 07:08:02.000045', '0 days 07:20:32.261811624'],
               dtype='timedelta64[ns]', freq=None)

DataFrame các thành phần...
   days  hours  minutes  seconds  milliseconds  microseconds  nanoseconds
0    10      5        2        0             0             3           10
1     0     22       39       19           999           999            0
2     2      7        8        2             0            45            0
3     0      7       20       32           261           811          624

Thực hiện phép Round với tần suất mili-giây...
TimedeltaIndex(['10 days 05:02:00', '0 days 22:39:20',
                '2 days 07:08:02', '0 days 07:20:32.262000'],
               dtype='timedelta64[ns]', freq=None)

Giải thích: Khác với floor (luôn làm tròn xuống), phương thức round() làm tròn đến giá trị gần nhất. Phần tử thứ 2: 22:39:19.999999 được làm tròn lên thành 22:39:20 vì phần nano-giây đủ lớn. Phần tử thứ 4: 07:20:32.261811624 được làm tròn thành 07:20:32.262 (262 mili-giây).