Pandalar: gruplar içinde groupby ve sort nasıl kullanılır?


Pandas DataFrame’deki satırları gruplamak ve ardından gruplar içindeki değerleri sıralamak için aşağıdaki sözdizimini kullanabilirsiniz:

 df. sort_values ([' var1 ',' var2 '],ascending= False ). groupby (' var1 '). head ()

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

Örnek: Pandas’ta GroupBy Kullanımı ve Gruplarda Sıralama

Diyelim ki iki farklı mağazada yapılan satışları gösteren aşağıdaki panda DataFrame’imiz var:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['B', 'B', 'A', 'A', 'B', 'B', 'A', 'A'],
                   ' sales ': [12, 25, 8, 14, 10, 20, 30, 30]})

#view DataFrame
print (df)

  blind sales
0 B 12
1 B 25
2 to 8
3 to 14
4 B 10
5 B 20
6 to 30
7 to 30

Satırları mağaza sütununa göre gruplamak ve satış sütununa göre azalan düzende sıralamak için aşağıdaki sözdizimini kullanabiliriz:

 #group by store and sort by sales values in descending order
df. sort_values ([' store ', ' sales '],ascending= False ). groupby (' store '). head ()

	blind sales
1 B 25
5 B 20
0 B 12
4 B 10
6 to 30
7 to 30
3 to 14
2 to 8

Satış değerlerini artan düzende sıralamak için artan=Yanlış argümanını da kaldırabileceğimizi unutmayın:

 #group by store and sort by sales values in ascending order
df. sort_values ([' store ',' sales ']). groupby (' store '). head ()

	blind sales
2 to 8
3 to 14
6 to 30
7 to 30
4 B 10
0 B 12
5 B 20
1 B 25

head() fonksiyonunun grup başına yalnızca ilk 5 değeri görüntülediğini unutmayın.

Grup başına en iyi n değeri görüntülemek için bunun yerine head(n) komutunu kullanmanız yeterlidir.

Not : Pandalarda 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:

Pandalar: Grup başına kümülatif toplam nasıl hesaplanır?
Pandalar: benzersiz değerlerin gruba göre nasıl sayılacağı
Pandalar: gruba göre korelasyon nasıl hesaplanır

Yorum ekle

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