Để lấy DataFrame chứa các thành phần thời gian (ngày, giờ, phút, giây, mili-giây, micro-giây, nano-giây) từ TimedeltaIndex, hãy sử dụng thuộc tính TimedeltaIndex.components.
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=[
'10 day 5h 2 min 35s 3us 10ns',
'+22:39:19.999999',
'2 day 4h 03:08:02.000045',
'+21:15:45.999999'
])
3. Hiển thị TimedeltaIndex
print("TimedeltaIndex...\n", tdIndex)
4. Lấy DataFrame các thành phần
print("\nDataFrame các thành phần của TimeDeltas...\n", tdIndex.components)
Ví dụ hoàn chỉnh
import pandas as pd
tdIndex = pd.TimedeltaIndex(data=[
'10 day 5h 2 min 35s 3us 10ns',
'+22:39:19.999999',
'2 day 4h 03:08:02.000045',
'+21:15:45.999999'
])
print("TimedeltaIndex...\n", tdIndex)
# Các thuộc tính riêng lẻ
print("\nSố ngày từ mỗi phần tử...\n", tdIndex.days)
print("\nSố giây từ mỗi phần tử...\n", tdIndex.seconds)
print("\nSố micro-giây từ mỗi phần tử...\n", tdIndex.microseconds)
# DataFrame đầy đủ các thành phần
print("\nDataFrame các thành phần của TimeDeltas...\n", tdIndex.components)
Kết quả đầu ra
TimedeltaIndex...
TimedeltaIndex(['10 days 05:02:35.000003010', '0 days 22:39:19.999999',
'2 days 07:08:02.000045', '0 days 21:15:45.999999'],
dtype='timedelta64[ns]', freq=None)
Số ngày từ TimeDeltaIndex...
Int64Index([10, 0, 2, 0], dtype='int64')
Số giây từ TimeDeltaIndex...
Int64Index([18155, 81559, 25682, 76545], dtype='int64')
Số micro-giây từ TimeDeltaIndex...
Int64Index([3, 999999, 45, 999999], dtype='int64')
DataFrame các thành phần của TimeDeltas...
days hours minutes seconds milliseconds microseconds nanoseconds
0 10 5 2 35 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
Giải thích: Thuộc tính components trả về DataFrame với 7 cột: days, hours, minutes, seconds, milliseconds, microseconds, nanoseconds. Mỗi hàng tương ứng với một phần tử trong TimedeltaIndex. Điều này rất tiện lợi khi cần phân tích hoặc xử lý từng thành phần thời gian riêng biệt.