- 114 Okunma
- 0 Yorum
- 0 Beğeni
Pandas Gruplama ve Kümeleme
Pandas, Python programlama dilinde veri analizi yapmak için kullanılan bir kütüphanedir. Pandas, verileri tablo şeklinde tutan ve sütunlara isim verilebilen bir veri yapısı olan DataFrame sunar. DataFrame, verileri kolayca işlemek, filtrelemek, sıralamak, gruplamak ve kümelemek için çeşitli fonksiyonlar sağlar.
Gruplama, verileri belirli bir kritere göre bölüp, her bir bölüm üzerinde ayrı ayrı işlemler yapmaya yarar. Örneğin, bir DataFrame’de şehir, cinsiyet ve yaş gibi sütunlar olsun. Bu DataFrame’i şehre göre gruplayarak, her bir şehirdeki kişilerin sayısını, ortalama yaşını, cinsiyet dağılımını vb. hesaplayabiliriz. Pandas, gruplama işlemi için groupby fonksiyonunu kullanır. groupby fonksiyonu, gruplama kriteri olarak bir veya birden fazla sütun ismi alır ve bir GroupBy nesnesi döndürür. GroupBy nesnesi, verileri gruplara ayırmış, ancak henüz herhangi bir işlem yapmamıştır. GroupBy nesnesi üzerinde istediğimiz işlevleri çağırarak, gruplara uygulayabiliriz. Örneğin, GroupBy nesnesi üzerinde sum, mean, count, max, min gibi fonksiyonlar çağırabiliriz.
Kümeleme, gruplanmış verilerin istenen özelliklerine göre bir araya getirilmesi işlemidir. Kümeleme işlemi için aggregate fonksiyonu kullanılır. aggregate fonksiyonu, bir veya birden fazla işlevi parametre olarak alır ve her bir grup için bu işlevleri uygular. Sonuç olarak, bir DataFrame döndürür. Bu DataFrame, gruplama kriterine göre sıralanmış ve her bir grup için istenen özellikleri içerir. Örneğin, aggregate fonksiyonuna sum, mean ve count işlevlerini verirsek, her bir grup için toplam, ortalama ve sayı değerlerini içeren bir DataFrame elde ederiz.
Aşağıda, Pandas gruplama ve kümeleme işlemlerinin bir örneğini görebilirsiniz. Bu örnekte, bir DataFrame’de ülke, şehir ve nüfus gibi sütunlar vardır. Bu DataFrame’i ülkeye göre gruplayarak, her bir ülkedeki şehir sayısını, toplam nüfusunu ve ortalama nüfusunu hesaplıyoruz. Sonuç olarak, bir DataFrame elde ediyoruz.
python
# Pandas kütüphanesini içe aktar
import pandas as pd
# Bir DataFrame oluştur
df = pd.DataFrame({
"Ülke": ["Türkiye", "Türkiye", "Türkiye", "Fransa", "Fransa", "Fransa", "Almanya", "Almanya", "Almanya"],
"Şehir": ["İstanbul", "Ankara", "İzmir", "Paris", "Lyon", "Marsilya", "Berlin", "Münih", "Hamburg"],
"Nüfus": [15519267, 5663323, 4320519, 2140526, 516092, 869815, 3644826, 1471508, 1841179]
})
# DataFrame’i ülkeye göre grupla
grup = df.groupby("Ülke")
# Gruplanmış verileri kümele
sonuc = grup.aggregate({
"Şehir": "count", # Şehir sayısını hesapla
"Nüfus": ["sum", "mean"] # Toplam ve ortalama nüfusu hesapla
})
# Sonucu yazdır
print(sonuc)
Çıktı:
Şehir Nüfus
count sum mean
Ülke
Almanya 3 6957513 2.319171e+06
Fransa 3 3545433 1.181811e+06
Türkiye 3 25497109 8.499037e+06
30. UYGULAMA
Aşağıdaki adımları takip ederek, Iris veri seti üzerinde Pandas groupby fonksiyonunu kullanabilirsiniz:
1. Adım: Kaggle web sitesine gidin ve "Iris" veri setini arayın. İndirme butonuna tıklayarak veri setini bilgisayarınıza kaydedin.
2. Adım: Pandas kütüphanesini içe aktarın ve read_csv fonksiyonu ile indirdiğiniz veri setini bir DataFrame’e dönüştürün. data değişkenine atayın ve ekrana yazdırın.
python
import pandas as pd
data = pd.read_csv(’iris.csv’)
print(data)
3. Adım: DataFrame hakkında daha fazla bilgi edinmek için info fonksiyonunu çağırın. Bu fonksiyon, DataFrame’in satır sayısı, sütun sayısı, sütun isimleri, veri tipleri, bellek kullanımı ve eksik değerler gibi bilgileri verir.
python
data.info()
4. Adım: Verileri çiçek türlerine göre gruplamak için groupby fonksiyonunu kullanın. Bu fonksiyon, bir gruplama nesnesi döndürür. Bu nesne, gruplara uygulanabilecek farklı fonksiyonlar içerir.
python
grup = data.groupby("Species")
5. Adım: Gruplara ait veri sayısını öğrenmek için count fonksiyonunu kullanın. Bu fonksiyon, her gruptaki her sütun için veri sayısını verir.
python
grup.count()
6. Adım: Gruplara ait verilerin ortalamasını öğrenmek için mean fonksiyonunu kullanın. Bu fonksiyon, her gruptaki her sütun için aritmetik ortalama hesaplar.
python
grup.mean()
7. Adım: Gruplara ait verilerin toplamını öğrenmek için sum fonksiyonunu kullanın. Bu fonksiyon, her gruptaki her sütun için toplam değeri verir.
python
grup.sum()
8. Adım: Gruplara ait verilerin birden fazla istatistiksel ölçüsünü öğrenmek için aggregate fonksiyonunu kullanın. Bu fonksiyon, her gruptaki her sütun için istediğiniz fonksiyonları uygular. Örneğin, minimum, maksimum ve standart sapma gibi fonksiyonları bir liste halinde vererek, her gruptaki her sütun için bu değerleri elde edebilirsiniz.
python
grup.agg([min,max,np.std])
9. Adım: Gruplara ait verilerden sadece belirli bir sütunu seçmek için köşeli parantez içinde sütun ismini verin. Örneğin, sadece sepal uzunluğu sütununu seçmek için "SepalLengthCm" sütununu verin. Daha sonra, bu sütuna ait gruplara istediğiniz fonksiyonları uygulayabilirsiniz. Örneğin, maksimum ve minimum değerleri bulmak için aggregate fonksiyonunu kullanabilirsiniz.
python
grup["SepalLengthCm"].aggregate([max,min])
YORUMLAR
Henüz yorum yapılmamış.