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

Python Pandas - Lấy DataFrame các thành phần từ TimedeltaIndex

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