แก้ไขแล้ว: เติมแพนด้าย้อนหลังหลังจากสุ่มตัวอย่าง

ในโลกปัจจุบัน การจัดการและวิเคราะห์ข้อมูลมีความสำคัญต่อการทำความเข้าใจปรากฏการณ์ต่างๆ และตัดสินใจอย่างรอบรู้ งานทั่วไปอย่างหนึ่งในการวิเคราะห์ข้อมูลคือการสุ่มตัวอย่างข้อมูลอนุกรมเวลาใหม่ ซึ่งเกี่ยวข้องกับการเปลี่ยนความถี่ของข้อมูล ไม่ว่าจะโดยการสุ่มตัวอย่างเพิ่ม (เพิ่มความถี่) หรือการสุ่มตัวอย่างลง (ลดความถี่) ในบทความนี้ เราจะพูดถึงกระบวนการเติมข้อมูลย้อนหลังในขณะที่อัปแซมปลิงข้อมูลอนุกรมเวลาโดยใช้ไลบรารี Python อันทรงพลังอย่าง Pandas

กรอกข้อมูลอนุกรมเวลาย้อนหลัง

เมื่อเราสุ่มตัวอย่างข้อมูลอนุกรมเวลา เราจะเพิ่มความถี่ของจุดข้อมูล ซึ่งโดยปกติจะส่งผลให้ค่าของจุดข้อมูลที่สร้างขึ้นใหม่ขาดหายไป เพื่อเติมค่าที่ขาดหายไปเหล่านี้ เราสามารถใช้หลายวิธีได้ วิธีหนึ่งที่เรียกว่า เติมย้อนหลัง, ที่รู้จักกันว่า ทดแทน. การเติมแบบย้อนกลับเป็นกระบวนการเติมค่าที่ขาดหายไปด้วยค่าที่มีอยู่ถัดไปในอนุกรมเวลา

ห้องสมุดหมีแพนด้า

Python ของ ห้องสมุดหมีแพนด้า เป็นเครื่องมือที่จำเป็นสำหรับการจัดการข้อมูล โดยนำเสนอฟังก์ชันการทำงานที่หลากหลายสำหรับการจัดการโครงสร้างข้อมูล เช่น DataFrames และข้อมูลอนุกรมเวลา Pandas มีฟีเจอร์ในตัวที่ช่วยให้ทำงานกับข้อมูลอนุกรมเวลาได้ง่าย เช่น การสุ่มตัวอย่างใหม่และการเติมค่าที่ขาดหายไป ทำให้เราสามารถเติมข้อมูลย้อนหลังได้อย่างมีประสิทธิภาพหลังจากการสุ่มตัวอย่าง

วิธีแก้ไข: เติมข้อมูลย้อนหลังด้วย Pandas

เพื่อสาธิตกระบวนการใช้การเติมแบบย้อนกลับหลังจากการสุ่มตัวอย่างข้อมูลอนุกรมเวลาโดยใช้ Pandas ลองพิจารณาตัวอย่างง่ายๆ เราจะเริ่มต้นด้วยการนำเข้าไลบรารีที่จำเป็นและสร้างชุดข้อมูลอนุกรมเวลาตัวอย่าง

import pandas as pd
import numpy as np

# Create a sample time series dataset
date_rng = pd.date_range(start='2022-01-01', end='2022-01-10', freq='D')
data = np.random.randint(0, 100, size=(len(date_rng), 1))

df = pd.DataFrame(date_rng, columns=['date'])
df['value'] = data

ตอนนี้เรามีข้อมูลตัวอย่างแล้ว เราจะดำเนินการอัปแซมปลิงและใช้วิธีการเติมแบบย้อนกลับ ในตัวอย่างนี้ เราจะสุ่มตัวอย่างจากความถี่รายวันเป็นความถี่รายชั่วโมง:

# Upsample the data to hourly frequency
df.set_index('date', inplace=True)
hourly_df = df.resample('H').asfreq()

# Apply the backward fill method to fill missing values
hourly_df.fillna(method='bfill', inplace=True)

ในโค้ดด้านบน ขั้นแรกเราตั้งค่าคอลัมน์ 'วันที่' เป็นดัชนี จากนั้นสุ่มตัวอย่างข้อมูลใหม่เป็นความถี่รายชั่วโมงโดยใช้ ตัวอย่าง () การทำงาน. DataFrame ที่ได้นั้นมีค่าขาดหายไปเนื่องจากความถี่ที่เพิ่มขึ้น จากนั้นเราก็ใช้ เติม() วิธีการที่มีพารามิเตอร์ 'bfill' เพื่อดำเนินการเติมค่าที่หายไปแบบย้อนกลับ

คำอธิบายทีละขั้นตอน

มาแยกย่อยรหัสเพื่อทำความเข้าใจให้ดียิ่งขึ้น:

1. เรานำเข้าไลบรารี Pandas และ NumPy ก่อน:

   import pandas as pd
   import numpy as np
   

2. เราสร้างชุดข้อมูลอนุกรมเวลาตัวอย่างโดยใช้ ช่วงวันที่ () ฟังก์ชันจาก Pandas เพื่อสร้างวันที่รายวันและค่าตัวเลขแบบสุ่ม:

   date_rng = pd.date_range(start='2022-01-01', end='2022-01-10', freq='D')
   data = np.random.randint(0, 100, size=(len(date_rng), 1))
   df = pd.DataFrame(date_rng, columns=['date'])
   df['value'] = data
   

3. ต่อไป เราตั้งค่าคอลัมน์ 'วันที่' เป็นดัชนีและสุ่มตัวอย่างข้อมูลใหม่เป็นความถี่รายชั่วโมงด้วย ตัวอย่าง () และ ความถี่ () ฟังก์ชั่น:

   df.set_index('date', inplace=True)
   hourly_df = df.resample('H').asfreq()
   

4. สุดท้าย เราเติมค่าที่ขาดหายไปใน DataFrame ที่สุ่มตัวอย่างโดยใช้ เติม() วิธีการที่มีพารามิเตอร์ 'bfill' สำหรับการเติมแบบย้อนกลับ:

   hourly_df.fillna(method='bfill', inplace=True)
   

สรุป

ในบทความนี้ เราได้สำรวจกระบวนการของ การเติมข้อมูลย้อนหลังหลังจากการสุ่มตัวอย่างข้อมูลอนุกรมเวลา ใช้ไลบรารี Pandas อันทรงพลังใน Python ด้วยการทำความเข้าใจและนำเทคนิคเหล่านี้ไปใช้ เราสามารถจัดการและวิเคราะห์ข้อมูลอนุกรมเวลาได้อย่างมีประสิทธิภาพ ค้นพบข้อมูลเชิงลึกอันมีค่า และทำการตัดสินใจอย่างรอบรู้

กระทู้ที่เกี่ยวข้อง:

แสดงความคิดเห็น