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

Python Pandas - การทำ Round Operation บน TimeDeltaIndex ด้วยความถี่ไมโครวินาที

หากต้องการทำ round operation (การปัดเศษปกติ) บน TimeDeltaIndex ด้วยความถี่ไมโครวินาที ให้ใช้เมธอด TimeDeltaIndex.round() โดยระบุพารามิเตอร์ freq เป็น 'us'

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

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',
    '+07:20:32.261811624'
])

3. แสดง TimeDeltaIndex

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

4. ทำ Round Operation ด้วยความถี่ไมโครวินาที

print("\nPerforming round operation with microseconds frequency...\n", tdIndex.round(freq='us'))

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

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',
    '+07:20:32.261811624'
])

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

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

# Round operation ด้วยความถี่ไมโครวินาที
print("\nPerforming round operation with microseconds frequency...\n", tdIndex.round(freq='us'))

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

TimedeltaIndex... 
TimedeltaIndex(['10 days 05:02:00.000003010', '0 days 22:39:19.999999', 
                '2 days 07:08:02.000045', '0 days 07:20:32.261811624'], 
               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      7       20       32           261           811          624

Performing round operation with microseconds frequency...
TimedeltaIndex(['10 days 05:02:00.000003', '0 days 22:39:19.999999', 
                '2 days 07:08:02.000045', '0 days 07:20:32.261812'], 
               dtype='timedelta64[ns]', freq=None)

หมายเหตุ: การทำ round ด้วยความถี่ 'us' จะปัดเศษค่าไปยังไมโครวินาทีที่ใกล้ที่สุด โดยค่าที่มากกว่าหรือเท่ากับ 0.5 ไมโครวินาทีจะปัดขึ้น ค่าน้อยกว่าจะปัดลง