Pandas dataframe'de haftaya göre gruplandırma (örnekle)


Bir pandas DataFrame’de satırları haftaya göre gruplamak için aşağıdaki temel sözdizimini kullanabilirsiniz:

 #convert date column to datetime and subtract one week
df[' date '] = pd. to_datetime (df[' date ']) - pd. to_timedelta (7, unit=' d ')

#calculate sum of values, grouped by week
df. groupby ([pd. Group (key=' date ', freq=' W ')])[' values ']. sum ()

Bu özel formül, tarih sütunundaki satırları haftaya göre gruplandırır ve DataFrame’deki değerler sütunu için değerlerin toplamını hesaplar.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: Pandalar’da haftaya göre nasıl gruplandırılır

Diyelim ki bir şirketin farklı tarihlerde yaptığı satışları gösteren aşağıdaki panda DataFrame’imiz var:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': pd. date_range (start='1/5/2022', freq='D', periods=15),
                   ' sales ': [6, 8, 9, 5, 4, 8, 8, 3, 5, 9, 8, 3, 4, 7, 7]})

#view DataFrame
print (df)

         dirty date
0 2022-01-05 6
1 2022-01-06 8
2 2022-01-07 9
3 2022-01-08 5
4 2022-01-09 4
5 2022-01-10 8
6 2022-01-11 8
7 2022-01-12 3
8 2022-01-13 5
9 2022-01-14 9
10 2022-01-15 8
11 2022-01-16 3
12 2022-01-17 4
13 2022-01-18 7
14 2022-01-19 7

İlgili: Pandalarda Tarih Aralığı Nasıl Oluşturulur

Haftaya göre gruplandırılmış satışların toplamını hesaplamak için aşağıdaki sözdizimini kullanabiliriz:

 #convert date column to datetime and subtract one week
df[' date '] = pd. to_datetime (df[' date ']) - pd. to_timedelta (7, unit=' d ')

#calculate sum of values, grouped by week
df. groupby ([pd. Group (key=' date ', freq=' W ')])[' sales ']. sum ()

date
2022-01-02 32
2022-01-09 44
2022-01-16 18
Freq: W-SUN, Name: sales, dtype: int64

Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:

  • 2.1.2022 tarihinden sonraki günden itibaren hafta boyunca toplam 32 satış gerçekleşti.
  • 01/09/2022 tarihinden sonraki günden itibaren hafta boyunca toplam 44 satış gerçekleşti.
  • 16.01.2022 tarihinden sonraki günden itibaren hafta boyunca toplam 18 satış gerçekleşti.

Pandaların varsayılan olarak haftanın Pazar gününden ( W-SUN ) sonraki gün başladığını varsaydığını belirtmek gerekir.

Ancak belgelere göre Freq için bu değeri değiştirebilirsiniz.

Örneğin, her haftanın Pazartesi’den (yani Salı) sonraki gün başlamasını istiyorsanız Freq=W-MON belirtebilirsiniz.

Haftaya göre gruplandırılmış maksimum satış değerlerini hesaplamak için benzer sözdizimini kullanabiliriz:

 #convert date column to datetime and subtract one week
df[' date '] = pd. to_datetime (df[' date ']) - pd. to_timedelta (7, unit=' d ')

#calculate max of values, grouped by week
df. groupby ([pd. Group (key=' date ', freq=' W ')])[' sales ']. max ()

date
2022-01-02 9
2022-01-09 9
2022-01-16 7
Freq: W-SUN, Name: sales, dtype: int64

Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:

  • 01/02/2022 tarihinden sonraki günden itibaren hafta boyunca günlük maksimum satış 9 oldu.
  • 01/9/2022 tarihinden sonraki günden itibaren hafta boyunca günlük maksimum satış sayısı 9 oldu.
  • 16.01.2022 tarihinden sonraki günden itibaren hafta boyunca günlük maksimum satış sayısı 7 oldu.

Not : Pandalardaki groupby işleminin tam belgelerini burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

Pandas DataFrame’de aya göre nasıl gruplandırılır
Pandas DataFrame’de güne göre nasıl gruplandırılır
Pandalarda Groupby nasıl kullanılır ve koşullu olarak sayılır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir