Pandalar: değer aralığına göre nasıl gruplandırılır


Toplama işlemini gerçekleştirmeden önce bir sütunu değer aralığına göre gruplandırmak amacıyla pandalarda groupby() işlevini kullanmak için aşağıdaki sözdizimini kullanabilirsiniz:

 df. groupby (pd. cut (df[' my_column '], [0, 25, 50, 75, 100])). sum ()

Bu özel örnek, DataFrame’in satırlarını my_column adlı sütundaki aşağıdaki değer aralığına göre gruplandıracaktır:

  • (0,25)
  • (25, 50)
  • (50, 75)
  • (75, 100)

Daha sonra bu değer aralıklarını gruplar halinde kullanarak DataFrame’in tüm sütunlarındaki değerlerin toplamını hesaplayacaktır.

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

Örnek: Pandalarda değer aralığına göre nasıl gruplandırılır

Farklı perakende mağazalarının boyutları ve toplam satışları hakkında bilgi içeren aşağıdaki panda DataFrame’e sahip olduğumuzu varsayalım:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store_size ': [14, 25, 26, 29, 45, 58, 67, 81, 90, 98],
                   ' sales ': [15, 18, 24, 25, 20, 35, 34, 49, 44, 49]})

#view DataFrame
print (df)

   store_size sales
0 14 15
1 25 18
2 26 24
3 29 25
4 45 20
5 58 35
6 67 34
7 81 49
8 90 44
9 98 49

DataFrame’i, store_size sütununun belirli aralıklarına göre gruplandırmak ve ardından aralıkları gruplar halinde kullanarak DataFrame’deki diğer tüm sütunların toplamını hesaplamak için aşağıdaki sözdizimini kullanabiliriz:

 #group by ranges of store_size and calculate sum of all columns
df. groupby (pd. cut (df[' store_size '], [0, 25, 50, 75, 100])). sum ()

	 store_size sales
store_size		
(0.25] 39 33
(25, 50] 100 69
(50, 75] 125 69
(75, 100] 269 142

Sonuçtan şunları görebiliriz:

  • Store_size değeri 0 ile 25 arasında olan satırlar için store_size toplamı 39 , satış toplamı ise 33’tür .
  • Store_size değeri 25 ile 50 arasında olan satırlar için store_size toplamı 100 , satış toplamı ise 69’dur .

Ve benzeri.

İsterseniz her bir mağaza_size aralığı için yalnızca satışların toplamını da hesaplayabilirsiniz:

 #group by ranges of store_size and calculate sum of sales
df. groupby (pd. cut (df[' store_size '], [0, 25, 50, 75, 100]))[' sales ']. sum ()

store_size
(0.25] 33
(25, 50] 69
(50, 75] 69
(75, 100] 142
Name: sales, dtype: int64

Her kesme noktasını manuel olarak belirtmeden bir değişkeni aralıklara bölmek için NumPy arange() işlevini de kullanabilirsiniz:

 import numpy as np

#group by ranges of store_size and calculate sum of sales
df. groupby (pd. cut (df[' store_size '], np. arange (0, 101, 25)))[' sales ']. sum ()

store_size
(0.25] 33
(25, 50] 69
(50, 75] 69
(75, 100] 142
Name: sales, dtype: int64

Bu sonuçların önceki örnekle eşleştiğini unutmayın.

Not : NumPy arange() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde pandalarda diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

Pandalar: Groupby kullanılarak benzersiz değerler nasıl sayılır?
Pandalar: Groupby’deki bir sütunun ortalaması ve normu nasıl hesaplanır?
Pandalar: groupby’de as_index nasıl kullanılır?

Yorum ekle

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