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

Python Pandas - Chuyển đổi TimeDeltaIndex thành mảng đối tượng datetime.datetime

Để chuyển đổi TimeDeltaIndex thành mảng đối tượng (object ndarray) chứa các đối tượng datetime.datetime, hãy sử dụng phương thức TimeDeltaIndex.to_pytimedelta().

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

1. Import thư viện cần thiết

import pandas as pd

2. Tạo đối tượng TimeDeltaIndex

Chúng ta thiết lập dữ liệu timedelta bằng tham số data:

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

3. Chuyển đổi sang mảng đối tượng datetime.timedelta

print("\nTimeDeltaIndex dưới dạng mảng đối tượng datetime.timedelta...\n", tdIndex.to_pytimedelta())

Ví dụ hoàn chỉnh

import pandas as pd

# Tạo TimeDeltaIndex
tdIndex = pd.TimedeltaIndex(data=[
    '10 day 5h 2 min 3us 10ns',
    '+22:39:19.999999',
    '2 day 4h 03:08:02.000045',
    '+21:15:45.999999'
])

# Hiển thị TimeDeltaIndex
print("TimeDeltaIndex...\n", tdIndex)

# Hiển thị DataFrame các thành phần
print("\nDataFrame các thành phần của TimeDeltas...\n", tdIndex.components)

# Chuyển đổi sang mảng đối tượng datetime.timedelta
print("\nTimeDeltaIndex dưới dạng mảng đối tượng datetime.timedelta...\n", tdIndex.to_pytimedelta())

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 21:15:45.999999'],
               dtype='timedelta64[ns]', freq=None)

DataFrame các thành phần của TimeDeltas...
    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     21       15       45           999           999            0

TimeDeltaIndex dưới dạng mảng đối tượng datetime.timedelta...
[datetime.timedelta(days=10, seconds=18120, microseconds=3)
 datetime.timedelta(seconds=81559, microseconds=999999)
 datetime.timedelta(days=2, seconds=25682, microseconds=45)
 datetime.timedelta(seconds=76545, microseconds=999999)]

Lưu ý: Phương thức to_pytimedelta() trả về một mảng NumPy (ndarray) chứa các đối tượng datetime.timedelta gốc của Python, rất hữu ích khi cần tương tác với các thư viện chuẩn không hỗ trợ kiểu timedelta64[ns] của Pandas.