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