Python'da zaman serisi verileri nasıl yeniden örneklenir (örneklerle)
Zaman serisi verilerinin yeniden örneklenmesi, verilerin yeni bir dönem boyunca özetlenmesi veya toplanması anlamına gelir.
Python’da zaman serisi verilerini yeniden örneklemek için aşağıdaki temel sözdizimini kullanabiliriz:
#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 ()
Zaman serisi verilerini aşağıdakiler dahil farklı zaman aralıklarına yeniden örnekleyebileceğimizi unutmayın:
- S : Saniye
- dakika : Dakika
- H : Saat
- J :Gün
- K : Hafta
- M : Ay
- Soru : Çeyrek
- C : Yıl
Aşağıdaki örnek, pratikte zaman serisi verilerinin nasıl yeniden örnekleneceğini gösterir.
Örnek: Python’da Zaman Serisi Verilerini Yeniden Örnekleme
Bir şirketin bir yıllık süre boyunca her saat başına yaptığı toplam satışları gösteren aşağıdaki panda DataFrame’e sahip olduğumuzu varsayalım:
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
Satış verilerini görselleştirmek için bir çizgi grafiği oluşturursak şuna benzer:
import matplotlib. pyplot as plt
#plot time series data
plt. plot (df. index , df. sales , linewidth= 3 )
Bu grafiğin yorumlanması zor olduğundan satış verilerini haftalara göre özetleyebiliriz:
#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
Bu yeni DataFrame haftalık satışların toplamını gösterir.
Daha sonra bu haftalık verileri kullanarak bir zaman serisi grafiği oluşturabiliriz:
import matplotlib. pyplot as plt
#plot weekly sales data
plt. plot ( weekly_df.index , weekly_df.sales , linewidth= 3 )
Bu grafiğin okunması çok daha kolaydır çünkü ilk örnekte 8.545 bireysel saate ilişkin satış verilerinin aksine yalnızca 51 ayrı haftaya ait satış verilerini temsil ediyoruz.
Not : Bu örnekte satış verilerini haftaya göre özetledik, ancak daha az veri noktası çizmek istersek bunu ay veya çeyreğe göre de özetleyebiliriz.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’da diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:
Matplotlib’de bir zaman serisi nasıl çizilir
Seaborn’da bir zaman serisi nasıl çizilir
Python’da zaman serilerinden MAPE nasıl hesaplanır