Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Pandas - แปลง TimeDeltaIndex เป็น ndarray ของ datetime.timedelta

หากต้องการแปลง TimeDeltaIndex ให้เป็น ndarray ของ datetime.timedelta objects สามารถใช้เมธอด TimeDeltaIndex.to_pytimedelta()

ขั้นตอนการทำงาน

1. นำเข้าไลบรารีที่จำเป็น

import pandas as pd

2. สร้างออบเจ็กต์ 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'
])

3. แปลงเป็น ndarray ของ datetime.timedelta

print("\nTimeDeltaIndex เป็น ndarray ของ datetime.timedelta...\n", 
      tdIndex.to_pytimedelta())

ตัวอย่างโค้ดสมบูรณ์

import pandas as pd

# สร้าง TimeDeltaIndex object
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'
])

# แสดง TimedeltaIndex
print("TimedeltaIndex...\n", tdIndex)

# คืนค่า DataFrame ของส่วนประกอบ TimeDeltas
print("\nDataFrame ของส่วนประกอบ TimeDeltas...\n", tdIndex.components)

# แปลง TimeDeltaIndex เป็น object ndarray
print("\nTimeDeltaIndex เป็น ndarray ของ datetime.timedelta...\n", 
      tdIndex.to_pytimedelta())

ผลลัพธ์ที่คาดหวัง

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 ของส่วนประกอบ 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 เป็น ndarray ของ 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)]

คำอธิบาย: เมธอด to_pytimedelta() จะคืนค่า NumPy ndarray ที่มี dtype เป็น object โดยแต่ละองค์ประกอบเป็นออบเจ็กต์ datetime.timedelta มาตรฐานของ Python ซึ่งมีประโยชน์เมื่อต้องการทำงานกับไลบรารีที่ไม่รองรับ pandas Timedelta โดยตรง