Cara mengambil sampel ulang data deret waktu dengan python (dengan contoh)


Pengambilan sampel ulang data deret waktu berarti merangkum atau menggabungkan data selama periode baru.

Kita dapat menggunakan sintaks dasar berikut untuk mengambil sampel ulang data deret waktu dengan 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 () 

Perhatikan bahwa kami dapat mengambil sampel ulang data deret waktu ke periode waktu yang berbeda, termasuk:

  • S : Detik
  • menit : Menit
  • H : Jam
  • J : Hari
  • W : Minggu
  • G : Bulan
  • T : Seperempat
  • J : Tahun

Contoh berikut menunjukkan cara mengambil sampel ulang data deret waktu dalam praktiknya.

Contoh: Contoh Ulang Data Rangkaian Waktu dengan Python

Misalkan kita memiliki panda DataFrame berikut yang menunjukkan total penjualan yang dilakukan setiap jam oleh sebuah perusahaan selama periode satu tahun:

 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

Jika kita membuat plot garis untuk memvisualisasikan data penjualan, akan terlihat seperti ini:

 import matplotlib. pyplot as plt

#plot time series data
plt. plot (df. index , df. sales , linewidth= 3 ) 

Bagan ini sulit untuk ditafsirkan, sehingga kami dapat merangkum data penjualan berdasarkan minggu:

 #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 baru ini menunjukkan jumlah penjualan per minggu.

Kami kemudian dapat membuat plot deret waktu menggunakan data mingguan ini:

 import matplotlib. pyplot as plt

#plot weekly sales data
plt. plot ( weekly_df.index , weekly_df.sales , linewidth= 3 ) 

Bagan ini lebih mudah dibaca karena kami hanya mewakili data penjualan selama 51 minggu, dibandingkan dengan data penjualan selama 8.545 jam pada contoh pertama.

Catatan : Dalam contoh ini, kami merangkum data penjualan berdasarkan minggu, namun kami juga dapat meringkasnya berdasarkan bulan atau kuartal jika kami ingin membuat titik data yang lebih sedikit lagi.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya dengan Python:

Cara memplot deret waktu di Matplotlib
Cara membuat plot deret waktu di Seaborn
Cara menghitung MAPE dari deret waktu dengan Python

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *