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