Pandalarda verileri zamana göre gruplandırma (örnekle)
Verileri zamana göre gruplamak ve pandalarda toplama gerçekleştirmek için aşağıdaki sözdizimini kullanabilirsiniz:
df. groupby ([df[' time ']. dt . hour ]). dirty . sum ()
Bu özel örnek, değerleri saate göre Saat adı verilen bir sütunda gruplandırır ve ardından her saat için Satış sütunundaki değerlerin toplamını hesaplar.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: Pandalar’da verileri zamana göre gruplandırma
Bir mağaza için günün farklı saatlerinde yapılan satışların sayısını gösteren aşağıdaki pandalar DataFrame’e sahip olduğumuzu varsayalım:
import pandas as pd #createDataFrame df = pd. DataFrame ({' time ': ['2022-01-01 01:14:00', '2022-01-01 01:24:15', '2022-01-01 02:52:19', '2022-01-01 02:54:00', '2022-01-01 04:05:10', '2022-01-01 05:35:09'], ' sales ': [18, 20, 15, 14, 10, 9]}) #convert date column to datetime df[' time '] = pd. to_datetime (df[' time ']) #view DataFrame print (df) time sales 0 2022-01-01 01:14:00 18 1 2022-01-01 01:24:15 20 2 2022-01-01 02:52:19 15 3 2022-01-01 02:54:00 14 4 2022-01-01 04:05:10 10 5 2022-01-01 05:35:09 9
Zaman sütununu saatlere göre gruplamak ve her saate ilişkin satış toplamını hesaplamak için aşağıdaki sözdizimini kullanabiliriz:
#group by hours in time column and calculate sum of sales
df. groupby ([df[' time ']. dt . hour ]). dirty . sum ()
time
1 38
2 29
4 10
5 9
Name: sales, dtype: int64
Sonuçtan şunları görebiliriz:
- İlk saatte toplam 38 satış gerçekleşti.
- İkinci saatte toplam 29 satış gerçekleşti.
- Dördüncü saatte toplam 10 satış gerçekleşti.
- Beşinci saatte toplam 9 satış gerçekleşti.
Başka bir toplama işlemi de gerçekleştirebileceğimizi unutmayın.
Örneğin saat başına ortalama satış sayısını hesaplayabiliriz:
#group by hours in time column and calculate mean of sales
df. groupby ([df[' time ']. dt . hour ]). dirty . mean ()
time
1 19.0
2 14.5
4 10.0
5 9.0
Name: sales, dtype: float64
İstersek saat ve dakikaya göre de gruplayabiliriz.
Örneğin, aşağıdaki kod, saat ve dakikaya göre gruplandırılmış satış toplamının nasıl hesaplanacağını gösterir:
#group by hours and minutes in time column and calculate mean of sales
df. groupby ([df[' time ']. dt . hour , df[' time ']. dt . minute ]). dirty . mean ()
time time
1 14 18
24 20
2 52 15
54 14
4 5 10
5 35 9
Name: sales, dtype: int64
Sonuçtan şunları görebiliriz:
- 1 saat 14 dakikadaki ortalama satış sayısı ise 18 oldu.
- 1 saat 23 dakikadaki ortalama satış sayısı ise 20 oldu.
- 2 saat 52 dakikadaki ortalama satış sayısı ise 15 oldu.
Ve benzeri.
Ek kaynaklar
Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:
Pandalar’da tarih aralığı nasıl oluşturulur?
Pandalar’da tarihten ay nasıl çıkarılır
Pandalar’da zaman damgasını tarih/saat’e dönüştürme