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.