วิธีสุ่มตัวอย่างข้อมูลอนุกรมเวลาใน python (พร้อมตัวอย่าง)
การสุ่มตัวอย่าง ข้อมูลอนุกรมเวลาหมายถึงการสรุปหรือการรวมข้อมูลในช่วงเวลาใหม่
เราสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อสุ่มตัวอย่างข้อมูลอนุกรมเวลาใน Python:
#find sum of values in column1 by month weekly_df[' column1 '] = df[' column1 ']. resample (' M '). sum () #find mean of values in column1 by week weekly_df[' column1 '] = df[' column1 ']. resample (' W '). mean ()
โปรดทราบว่าเราสามารถสุ่มตัวอย่างข้อมูลอนุกรมเวลาใหม่ตามช่วงเวลาต่างๆ ได้ ซึ่งรวมถึง:
- ส : วินาที
- นาที : นาที
- ช : ชั่วโมง
- เจ :เดย์
- ว : สัปดาห์
- ม : เดือน
- ถาม : ไตรมาส
- ตอบ : ปี
ตัวอย่างต่อไปนี้แสดงวิธีการสุ่มตัวอย่างข้อมูลอนุกรมเวลาในทางปฏิบัติ
ตัวอย่าง: ตัวอย่างข้อมูลอนุกรมเวลาใหม่ใน Python
สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งแสดงยอดขายรวมที่ทำในแต่ละชั่วโมงโดยบริษัทในช่วงระยะเวลาหนึ่งปี:
import pandas as pd import numpy as np #make this example reproducible n.p. random . seeds (0) #create DataFrame with hourly index df = pd. DataFrame (index= pd.date_range (' 2020-01-06 ', ' 2020-12-27 ', freq=' h ')) #add column to show sales by hour df[' sales '] = np. random . randint (low=0, high=20, size= len (df. index )) #view first five rows of DataFrame df. head () dirty 2020-01-06 00:00:00 12 2020-01-06 01:00:00 15 2020-01-06 02:00:00 0 2020-01-06 03:00:00 3 2020-01-06 04:00:00 3
หากเราสร้างเส้นพล็อตเพื่อแสดงข้อมูลการขายจะมีลักษณะดังนี้:
import matplotlib. pyplot as plt
#plot time series data
plt. plot (df. index , df. sales , linewidth= 3 )

แผนภูมินี้ตีความได้ยาก ดังนั้นเราจึงสรุปข้อมูลการขายตามสัปดาห์ได้:
#create new DataFrame
weekly_df = pd. DataFrame ()
#create 'sales' column that summarizes total sales by week
weekly_df[' sales '] = df[' sales ']. resample (' W '). sum ()
#view first five rows of DataFrame
weekly_df. head ()
dirty
2020-01-12 1519
2020-01-19 1589
2020-01-26 1540
2020-02-02 1562
2020-02-09 1614
DataFrame ใหม่นี้แสดงผลรวมของยอดขายต่อสัปดาห์
จากนั้นเราสามารถสร้างพล็อตอนุกรมเวลาโดยใช้ข้อมูลรายสัปดาห์นี้:
import matplotlib. pyplot as plt
#plot weekly sales data
plt. plot ( weekly_df.index , weekly_df.sales , linewidth= 3 )

แผนภูมินี้อ่านง่ายกว่ามากเนื่องจากเราแสดงเฉพาะข้อมูลการขายสำหรับ 51 สัปดาห์ต่อสัปดาห์ ตรงข้ามกับข้อมูลการขายสำหรับ 8,545 ชั่วโมงในตัวอย่างแรก
หมายเหตุ : ในตัวอย่างนี้ เราได้สรุปข้อมูลการขายตามสัปดาห์ แต่เราสามารถสรุปตามเดือนหรือไตรมาสได้เช่นกัน หากเราต้องการพล็อตจุดข้อมูลให้น้อยลง
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน Python:
วิธีพล็อตอนุกรมเวลาใน Matplotlib
วิธีพล็อตลำดับเวลาใน Seaborn
วิธีการคำนวณ MAPE จากอนุกรมเวลาใน Python