Pandalar: groupby() ile zaman serileri nasıl yeniden örneklenir
Zaman serisi verilerinin yeniden örneklenmesi, verilerin yeni bir dönem boyunca toplanması anlamına gelir.
Groupby operatörünü kullanarak pandalarda bir zaman serisini yeniden örneklemek istiyorsanız aşağıdaki temel sözdizimini kullanabilirsiniz:
group = df. groupby ([pd. Group (freq=' W '), ' store ']) result = group[' sales ']. sum (). unstack (' store '). fillna (0)
Bu özel örnek, DataFrame satırlarını mağaza sütununa göre gruplandırır, ardından zaman serisini haftaya göre yeniden örnekler ( freq=’W’ ), ardından satış sütunundaki değerlerin toplamını hesaplar.
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 bir gruplama işlemiyle zaman serisi verilerinin nasıl yeniden örnekleneceğini gösterir.
Örnek: Pandas’ta groupby ile bir zaman serisini yeniden örnekleme
İki farklı mağazada her gün yapılan toplam satışları gösteren aşağıdaki panda DataFrame’e sahip olduğumuzu varsayalım:
import pandas as pd #createDataFrame df = pd. DataFrame ({' sales ': [13, 14, 17, 17, 16, 22, 28, 10, 17, 10, 11], ' store ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B']} , index=pd. date_range ('2023-01-06', '2023-01-16', freq='d')) #view DataFrame print (df) sales store 2023-01-06 13 A 2023-01-07 14 A 2023-01-08 17 A 2023-01-09 17 A 2023-01-10 16A 2023-01-11 22 B 2023-01-12 28 B 2023-01-13 10 B 2023-01-14 17 B 2023-01-15 10 B 2023-01-16 11 B
Diyelim ki satırları mağazaya göre gruplandırmak, ardından zaman serisini haftaya göre yeniden örneklemek, ardından satış sütunundaki değerlerin toplamını hesaplamak istiyoruz.
Bunu yapmak için aşağıdaki sözdizimini kullanabiliriz:
#group by store and resample time series by week group = df. groupby ([pd. Group (freq=' W '), ' store ']) #calculate sum of sales each week by store result = group[' sales ']. sum (). unstack (' store '). fillna (0) #view results print (result) store AB 2023-01-08 14.0 0.0 2023-01-15 16.5 17.0 2023-01-22 0.0 11.0
Sonuçtan şunları görebiliriz:
- A mağazasında 01/08/2023 tarihinde sona eren haftanın satış toplamı 14’tür .
- B mağazasında 01/08/2023 tarihinde sona eren haftaya ait satışların toplamı 0’dır .
Ve benzeri.
Bu örnekte satış sütunundaki değerlerin toplamını hesaplamayı seçtiğimizi unutmayın.
Ancak sayı, ortalama, medyan, minimum, maksimum vb. gibi diğer ölçümleri de seçebiliriz.
Yukarıdaki koddaki sum() işlevini count() , Mean() , Median() vb. ile değiştirmeniz yeterlidir. Seçtiğiniz ölçümü hesaplamak için.
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