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

Python Pandas – เลือกช่วงสุดท้ายของ Time Series ตาม Date Offset (last)

ภาพรวม

ใช้เมธอด last() ของ DataFrame ที่มี DatetimeIndex เพื่อดึงข้อมูลช่วงสุดท้ายตาม offset (เช่น '4D' = 4 วันสุดท้าย)

ตัวอย่างโค้ด


import pandas as pd

i = pd.date_range('2021-07-15', periods=5, freq='3D')
# 2021-07-15, 2021-07-18, 2021-07-21, 2021-07-24, 2021-07-27

dataFrame = pd.DataFrame({'k': [1, 2, 3, 4, 5]}, index=i)

print("DataFrame...\n", dataFrame)

# ดึง 4 วันสุดท้าย
print("Last few rows fetched..\n", dataFrame.last('4D'))

ผลลัพธ์

DataFrame...
                k
2021-07-15  1
2021-07-18  2
2021-07-21  3
2021-07-24  4
2021-07-27  5

Last few rows fetched..
                k
2021-07-24  4
2021-07-27  5

คำอธิบาย

  • Index ต้องเป็น DatetimeIndex
  • last('4D') = ข้อมูล 4 วันสุดท้าย (นับจากวันสุดท้ายย้อนกลับ)
  • วันสุดท้ายคือ 2021-07-27 ย้อน 4 วัน = 2021-07-24 ถึง 2021-07-27
  • ได้ rows ของ 24 และ 27 กรกฎาคม

ร่วมกับ first()


df.first('1W')   # สัปดาห์แรก
df.last('1M')    # เดือนสุดท้าย
df.first('10D')  # 10 วันแรก
df.last('2H')    # 2 ชั่วโมงสุดท้าย

Truncate Alternative

สำหรับการ slice แบบระบุชัดเจน:


df.truncate(before='2021-07-20', after='2021-07-25')
# หรือ slice โดยตรง
df['2021-07-20':'2021-07-25']