Để 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.