Data Analysis

Pandas’ta Gruplara Göre Benzersiz Değerleri Etkin Bir Şekilde Sayma

Spread the love

Pandas, Python’da güçlü bir veri manipülasyon kütüphanesidir. Sık karşılaşılan bir görev, veri kümenizdeki çeşitli gruplar içindeki benzersiz değerlerin sayısını belirlemeyi içerir. Bu makale, bunu başarmak için üç verimli Pandas yöntemini inceleyecektir: groupby().nunique(), groupby().agg() ve groupby().unique(). Her yöntem açık örneklerle gösterilecektir.

İçerik Tablosu

groupby().nunique() Metodu

groupby() işlemesinden sonra kullanılan nunique() metodu, her grup için benzersiz değerlerin sayısını doğrudan sağlar. Bu genellikle en verimli ve özlü yaklaşımdır.

Bu örnek DataFrame’i ele alalım:


import pandas as pd

data = {'Group': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C', 'C'],
        'Value': ['X', 'Y', 'X', 'Z', 'Z', 'X', 'Y', 'Z', 'X']}
df = pd.DataFrame(data)
print(df)

Bu şunu üretir:


  Group Value
0     A     X
1     A     Y
2     A     X
3     B     Z
4     B     Z
5     C     X
6     C     Y
7     C     Z
8     C     X

‘Grup’ başına benzersiz ‘Değer’ girdilerini saymak için şunu kullanın:


unique_counts = df.groupby('Group')['Value'].nunique()
print(unique_counts)

Çıktı:


Group
A    2
B    1
C    3
Name: Value, dtype: int64

Bu, ‘A’ grubunun 2 benzersiz değere, ‘B’nin 1’e ve ‘C’nin 3’e sahip olduğunu gösterir.

groupby().agg() Metodu

agg() metodu daha fazla esneklik sunar ve aynı anda birden fazla toplama fonksiyonunun uygulanmasına olanak tanır. Benzersiz değerleri saymak için nunique() ile birlikte, gerekirse diğer fonksiyonlarla birlikte kullanabiliriz.

Aynı DataFrame’i kullanarak:


aggregated_data = df.groupby('Group')['Value'].agg(['nunique', 'count'])
print(aggregated_data)

Çıktı:


      nunique  count
Group                
A           2      3
B           1      2
C           3      4

Bu, her grup için benzersiz değerlerin sayısını (nunique) ve değerlerin toplam sayısını (count) gösterir. Bu, daha kapsamlı analiz için faydalıdır.

groupby().unique() Metodu

unique() metodu, sayılarını değil, her grup için benzersiz değerlerin kendilerini döndürür. Doğrudan sayıyı sağlamasa da, gerçek benzersiz değerleri görmeniz gerekiyorsa kullanışlıdır.


unique_values = df.groupby('Group')['Value'].unique()
print(unique_values)

Çıktı:


Group
A    [X, Y]
B       [Z]
C    [X, Y, Z]
Name: Value, dtype: object

Sayıyı elde etmek için ek bir adım gereklidir:


unique_value_counts = unique_values.apply(len)
print(unique_value_counts)

Bu, nunique() ile aynı sonucu verir:


Group
A    2
B    1
C    3
Name: Value, dtype: int64

Ancak, bu doğrudan nunique() kullanmaktan daha az verimlidir.

Sonuç: Grup başına benzersiz değerleri basitçe saymak için groupby().nunique() en doğrudan ve verimli yöntemdir. groupby().agg(), nunique()‘i diğer toplamalarla birleştirmek için daha fazla esneklik sunarken, groupby().unique() benzersiz değerleri görmeniz gerektiğinde kullanışlıdır. Analitik ihtiyaçlarınıza en uygun yöntemi seçin.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir