วิธีสุ่มตัวอย่างข้อมูลอนุกรมเวลาใน 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *