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

Python Pandas - การยึดเวลา DateTimeIndex ให้ตรงกับความถี่ที่กำหนด


คำอธิบาย

ใช้เมธอด DateTimeIndex.snap() เพื่อ "ยึด" (snap) ตimestamp ให้ตรงกับความถี่ที่ใกล้ที่สุด ระบุผ่านพารามิเตอร์ freq

ตัวอย่าง

สร้าง DateTimeIndex ความถี่รายวัน (freq='D') แล้ว snap ให้ตรงสิ้นเดือน (freq='M')

การตนการทำงาน (Python)

import pandas as pd

# DateTimeIndex 6 วัน ตั้งแต่ 2021-10-20
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=6, tz='Australia/Adelaide', freq='D')

print("DateTimeIndex...\n", datetimeindex)
print("\nSnap time stamps to nearest occurring frequency...\n", datetimeindex.snap(freq='M'))

ผลลัพธ์

DateTimeIndex...
DatetimeIndex(['2021-10-20 02:30:50+10:30', '2021-10-21 02:30:50+10:30',
               '2021-10-22 02:30:50+10:30', '2021-10-23 02:30:50+10:30',
               '2021-10-24 02:30:50+10:30', '2021-10-25 02:30:50+10:30'],
              dtype='datetime64[ns, Australia/Adelaide]', freq='D')

Snap time stamps to nearest occurring frequency...
DatetimeIndex(['2021-10-31 02:30:50+10:30', '2021-10-31 02:30:50+10:30',
               '2021-10-31 02:30:50+10:30', '2021-10-31 02:30:50+10:30',
               '2021-10-31 02:30:50+10:30', '2021-10-31 02:30:50+10:30'],
              dtype='datetime64[ns, Australia/Adelaide]', freq=None)

หมายเหตุ

  • ทุก timestamp ถูก "ดึง" ไปยังวันสุดท้ายของเดือน (Month End)
  • เหมาะสำหรับการปรับข้อมูลเวลาให้ตรงกับช่วงเวลามาตรฐาน (สิ้นเดือน, สิ้นไตรมาส, ฯลฯ)