Pandas, veri analizi için güçlü bir Python kütüphanesidir ve sık yapılan görevlerden biri, bir DataFrame içindeki değerlerin sıklığını belirlemektir. Bu makale, değer sıklıklarını saymanın üç etkili yöntemini inceliyor: value_counts()
, groupby().size()
ve groupby().count()
. Her yöntemi, güçlü ve zayıf yönlerini vurgulayarak ve açık örnekler vererek inceleyeceğiz.
İçerik Tablosu
Series.value_counts()
Metodu
value_counts()
metodu, tek bir sütunda (Seri) değerlerin sıklığını saymanın en basit ve en etkili yoludur. İndeksi benzersiz değerleri ve değerleri de sayılarını temsil eden, varsayılan olarak azalan sırada sıralanmış bir Seri döndürür. Bu, belirli bir sütundaki bireysel değerlerin sıklığına ihtiyacınız olduğunda idealdir.
import pandas as pd
data = {'Kategori': ['A', 'A', 'B', 'B', 'A', 'C', 'A']}
df = pd.DataFrame(data)
kategori_sayimlari = df['Kategori'].value_counts()
print(kategori_sayimlari)
Çıktı:
A 4
B 2
C 1
Name: Kategori, dtype: int64
df.groupby().size()
Metodu
groupby().size()
metodu, DataFrame’i gruplandırdıktan sonra her grubun boyutunu (satır sayısını) sağlar. groupby().count()
‘tan farklı olarak, diğer sütunlardaki eksik değerlerden etkilenmez; sadece her gruptaki satırları sayar. Bu, grup oluşumlarının basit bir sayımını elde etmek için mükemmeldir.
import pandas as pd
data = {'Kategori': ['A', 'A', 'B', 'B', 'A', 'C'],
'Değer': [1, 2, 1, 1, 2, 3]}
df = pd.DataFrame(data)
kategori_sayimlari = df.groupby('Kategori').size()
print(kategori_sayimlari)
Çıktı:
Kategori
A 3
B 2
C 1
dtype: int64
df.groupby().count()
Metodu
groupby().count()
metodu çok yönlüdür ve birden çok sütunda sıklıkları saymanıza olanak tanır. DataFrame’i gruplandırır ve ardından *tüm* sütunlar için her gruptaki boş olmayan değerleri sayar. Bu, eksik verilerin sayıları etkileyeceği anlamına gelir. Birden çok sütunda sayıya ihtiyacınız olduğunda bu yöntemi kullanın, ancak eksik verilerden kaynaklanabilecek olası etkiye dikkat edin.
import pandas as pd
data = {'Kategori': ['A', 'A', 'B', 'B', 'A', 'C'],
'Değer': [1, 2, 1, 1, 2, 3],
'Değer2': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)
# Tüm sütunlarda 'Kategori' oluşumlarını sayın
kategori_sayimlari = df.groupby('Kategori').count()
print(kategori_sayimlari)
#Tek bir sütuna odaklanma
kategori_sayimlari_deger = df.groupby('Kategori')['Değer'].count()
print(kategori_sayimlari_deger)
Çıktı:
Değer Değer2
Kategori
A 3 3
B 2 2
C 1 1
Kategori
A 3
B 2
C 1
Name: Değer, dtype: int64
Özetle, en iyi yöntem, belirli ihtiyaçlarınıza bağlıdır. value_counts()
tek sütunlar için, groupby().size()
basit grup sayımları için ve groupby().count()
eksik değerlerin dikkatli bir şekilde ele alınmasını gerektiren, birden çok sütunu içeren daha karmaşık senaryolar için en iyisidir.