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

Python Pandas - สร้าง Series จาก TimeDeltaIndex และกำหนด Index ใหม่

ใช้เมธอด to_series() เพื่อสร้าง Series จาก TimeDeltaIndex ใน Pandas พารามิเตอร์ index ใช้สำหรับกำหนด index ใหม่ของ Series ที่ได้

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

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. แสดง TimeDeltaIndex

print("TimedeltaIndex...\n", tdIndex)

4. แปลง TimeDeltaIndex เป็น Series พร้อมกำหนด Index ใหม่

print("\nTimeDeltaIndex to series with new index...\n", 
      tdIndex.to_series(index=['Date1', 'Date2', 'Date3', 'Date4']))

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

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)

# แสดงคอมโพเนนต์ของ TimeDeltas
print("\nThe Dataframe of the components of TimeDeltas...\n", tdIndex.components)

# แปลง TimeDeltaIndex เป็น object ndarray
print("\nReturn TimeDeltaIndex as object ndarray of datetime.datetime objects...\n", tdIndex.to_pytimedelta())

# แปลง TimeDeltaIndex เป็น Series พร้อมกำหนด index ใหม่
print("\nTimeDeltaIndex to series with new index...\n", 
      tdIndex.to_series(index=['Date1', 'Date2', 'Date3', 'Date4']))

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

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)

The Dataframe of the components of 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

Return TimeDeltaIndex as object ndarray of datetime.datetime objects...
[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)]

TimeDeltaIndex to series with new index...
Date1    10 days 05:02:00.000003010
Date2     0 days 22:39:19.999999
Date3     2 days 07:08:02.000045
Date4     0 days 21:15:45.999999
dtype: timedelta64[ns]

หมายเหตุ: พารามิเตอร์ index ต้องมีความยาวเท่ากับจำนวนข้อมูลใน TimeDeltaIndex มิฉะนั้นจะเกิดข้อผิดพลาด