สมมติว่าคุณมี dataframe ที่มีข้อมูลอนุกรมเวลาและผลลัพธ์สำหรับข้อมูลที่ถูกตัดทอนคือ
before truncate: Id time_series 0 1 2020-01-05 1 2 2020-01-12 2 3 2020-01-19 3 4 2020-01-26 4 5 2020-02-02 5 6 2020-02-09 6 7 2020-02-16 7 8 2020-02-23 8 9 2020-03-01 9 10 2020-03-08 after truncate: Id time_series 1 2 2020-01-12
วิธีแก้ปัญหา
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนด้านล่าง -
-
กำหนดดาต้าเฟรม
-
สร้างฟังก์ชัน date_range ภายใน start='01/01/2020', จุด =10 และกำหนด freq ='W' มันจะสร้างวันที่สิบวันจากวันที่เริ่มต้นที่กำหนดจนถึงวันที่เริ่มต้นสัปดาห์ถัดไปและจัดเก็บเป็น df['time_series']
df['time_series'] = pd.date_range('01/01/2020', periods=10, freq='W')
-
ใช้ฟังก์ชัน df.truncate() ภายในค่าดัชนีบางค่าเช่น before=’01/01/2020’, after=’10/02/2020’ และเก็บไว้เป็นผลลัพธ์
result = df.truncate(before='01/01/2020',after='10/02/2020')
ตัวอย่าง
มาดูการใช้งานด้านล่างเพื่อความเข้าใจที่ดีขึ้น -
import pandas as pd d = {'Id': [1,2,3,4,5,6,7,8,9,10]} df = pd.DataFrame(d) df['time_series'] = pd.date_range('01/01/2020', periods=10, freq='W') print(df) result = df.truncate(before='01/01/2020',after='10/02/2020') print(result)
ผลลัพธ์
before truncate: Id time_series 0 1 2020-01-05 1 2 2020-01-12 2 3 2020-01-19 3 4 2020-01-26 4 5 2020-02-02 5 6 2020-02-09 6 7 2020-02-16 7 8 2020-02-23 8 9 2020-03-01 9 10 2020-03-08 after truncate: Id time_series 1 2 2020-01-12