Pandalar: groupby nasıl kullanılır ve koşullu olarak nasıl sayılır?


Bir pandas DataFrame’de gruplandırma ve koşullu sayım gerçekleştirmek için aşağıdaki temel sözdizimini kullanabilirsiniz:

 df. groupby (' var1 ')[' var2 ']. apply ( lambda x:(x==' val '). sum ()). reset_index (name=' count ')

Bu özel sözdizimi, DataFrame’in satırlarını var1’e göre gruplandırır ve ardından var2’nin “val”e eşit olduğu satır sayısını sayar.

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

Örnek: Pandalarda Groupby ve Koşullu Sayım

Çeşitli basketbol oyuncuları hakkında bilgi içeren aşağıdaki pandalar DataFrame’e sahip olduğumuzu varsayalım:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' pos ': ['Gu', 'Fo', 'Fo', 'Fo', 'Gu', 'Gu', 'Fo', 'Fo'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28]})

#view DataFrame
print (df)

  team pos points
0 A Gu 18
1 A Fo 22
2 A Fo 19
3 A Fo 14
4 B Gu 14
5 B Gu 11
6 B Fo 20
7 B Fo 28

Aşağıdaki kod, DataFrame’in ekip değişkenine göre nasıl gruplandırılacağını ve pos değişkeninin “Gu”ya eşit olduğu satır sayısının nasıl sayılacağını gösterir:

 #groupby team and count number of 'pos' equal to 'Gu'
df_count = df. groupby (' team ')[' pos ']. apply ( lambda x: (x==' Gu '). sum ()). reset_index (name=' count ')

#view results
print (df_count)

  team count
0 to 1
1 B 2

Sonuçtan şunları görebiliriz:

  • A Takımının konum sütununun “Gu”ya eşit olduğu 1 satırı vardır
  • B Takımının konum sütununun “Gu”ya eşit olduğu 2 satırı vardır

Bir gruplandırmayı gerçekleştirmek ve sayısal bir koşulla saymak için benzer sözdizimini kullanabiliriz.

Örneğin, aşağıdaki kod takım değişkenine göre nasıl gruplandırılacağını ve puan değişkeninin 15’ten büyük olduğu satır sayısının nasıl sayılacağını gösterir:

 #groupby team and count number of 'points' greater than 15
df_count = df. groupby (' team ')[' points ']. apply ( lambda x: (x>15). sum ()). reset_index (name=' count ')

#view results
print (df_count)

  team count
0 to 3
1 B 2

Sonuçtan şunları görebiliriz:

  • A takımının puan sütununun 15’ten büyük olduğu 3 çizgisi vardır
  • B Takımının puan sütununun 15’ten büyük olduğu 2 çizgisi vardır

İstediğiniz belirli bir koşulla gruplandırma ve sayım gerçekleştirmek için benzer sözdizimini kullanabilirsiniz.

Ek kaynaklar

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

Pandas GroupBy kullanılarak benzersiz değerler nasıl sayılır?
Pandas Groupby’ye bir işlev nasıl uygulanır?
Pandas GroupBy’den Bar Grafiği Nasıl Oluşturulur

Yorum ekle

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