หากต้องการแปลง 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 โดยตรง