Python’da grup verilerini analiz etmenin en yaygın yollarından biri groupby()
işlevini kullanmaktır. Bu işlev, bir grup anahtarı temelinde tekrar eden öğeleri gruplamak için harika bir araçtır. Ayrıca, mean()
işlevini kullanarak grup ortalamalarını almak da oldukça kolaydır. Bu yazıda, Python’un groupby
ve mean
işlevlerini kullanarak ortalama alma yöntemlerine göz atacağız.
Giriş
Python’da veri analizi yaparken, verileri gruplamak ve belirli istatistikleri elde etmek sıkça karşılaştığımız bir işlemdir. Bu tür işlemler için sıklıkla kullanılan groupby()
işlevi, verileri belirli bir anahtara göre gruplandırmamıza olanak tanır. Bu gruplama işlemi sonrasında, her bir grubun ortalamasını almak için mean()
işlevini kullanabiliriz. Bu yazıda, bu işlemleri nasıl gerçekleştireceğimizi öğreneceğiz.
Gerekli Kütüphaneler
Öncelikle, gerekli kütüphaneleri içe aktaralım ve veri setimizi oluşturalım. Bu örnek için pandas
kütüphanesini kullanacağız.
Kütüphaneleri İçe Aktarma:
import pandas as pd
# Örnek veri seti oluşturma
data = {'Şehir': ['İstanbul', 'İstanbul', 'İstanbul', 'İstanbul', 'İstanbul',
'Ankara', 'Ankara', 'Ankara', 'Ankara', 'Ankara'],
'Yıl': [2010, 2011, 2010, 2011, 2010, 2010, 2011, 2010, 2011, 2011],
'Gelir': [30000, 35000, 32000, 37000, 45000, 20000, 22000, 25000, 26000, 27000]}
veri_seti = pd.DataFrame(data)
Açıklama:
import pandas as pd
: pandas kütüphanesini içe aktarır.data
: Şehir, Yıl ve Gelir bilgilerini içeren bir sözlük oluşturur.veri_seti = pd.DataFrame(data)
: Sözlük verilerini pandas DataFrame’e dönüştürür.
Konsol Çıktısı:
print(veri_seti)
# Şehir Yıl Gelir
# 0 İstanbul 2010 30000
# 1 İstanbul 2011 35000
# 2 İstanbul 2010 32000
# 3 İstanbul 2011 37000
# 4 İstanbul 2010 45000
# 5 Ankara 2010 20000
# 6 Ankara 2011 22000
# 7 Ankara 2010 25000
# 8 Ankara 2011 26000
# 9 Ankara 2011 27000
Açıklama:
print(veri_seti)
: Oluşturduğumuz veri setini ekrana yazdırır. Her bir satırda şehir adı, yıl ve gelir bilgileri yer alır.
Elde ettiğimiz örnek veri seti şu şekildedir:
Şehir | Yıl | Gelir |
---|---|---|
İstanbul | 2010 | 30000 |
İstanbul | 2011 | 35000 |
İstanbul | 2010 | 32000 |
İstanbul | 2011 | 37000 |
İstanbul | 2010 | 45000 |
Ankara | 2010 | 20000 |
Ankara | 2011 | 22000 |
Ankara | 2010 | 25000 |
Ankara | 2011 | 26000 |
Ankara | 2011 | 27000 |
Açıklama:
- Oluşturduğumuz veri setinde üç sütun bulunmaktadır:
Şehir:
Şehrin adı (İstanbul veya Ankara)Yıl:
Yıl bilgisiGelir:
İlgili şehrin yıl içindeki gelir bilgisi- Aynı şehir ve yıl için birden fazla gelir kaydı olabilir.
Pandas groupby() ile Ortalama Alma İşlemi Nasıl Yapılır?
Pandas kütüphanesinde yer alan groupby()
fonksiyonu sayesinde veri setimizi belirli bir anahtara göre gruplandırabiliriz. Daha sonra bu gruplandırılmış veriler üzerinde ortalama gibi istatistiksel hesaplamalar yapabiliriz.
Kod Örneği:
# Pandas kütüphanesini içe aktarma (önceden yapılmışsa bu adımı atlayabilirsiniz)
impor pandas as pd
# Örnek veri setini oluşturalım
veri = {"Şehir": ["İstanbul", "İstanbul", "İstanbul", "İstanbul", "İstanbul", "Ankara", "Ankara", "Ankara", "Ankara", "Ankara"],
yıllar = [2010, 2011, 2010, 2011, 2010, 2010, 2011, 2010, 2011, 2011],
gelirler = [30000,35000,32000,37000,45000,20000,22000,25000,26000,27000]}
df = pd.DataFrame(veri)
df['Gelir'] = gelirler
df_grouped = df.groupby(['Şehir'])['Gelir'].mean()
df_grouped.reset_index(name='Ortalama Gelir')
df_grouped
# Çıktı:
df_grouped
# Şehir Ortalama Gelir
# İstanbul İstanbul35120.000000
# Ankara Ankara25200.000000
# Name:
ağırlıklı Ortalama Gelir
dtype:'float64'
df_grouped.reset_index(name='Ortalama Gelir')
Açıklama:
df.groupby(['Şehir'])['Gelir'].mean()
: Şehir bazında gruplandırma yaparak her şehir için ortalama geliri hesaplar.reset_index(name='Ortalama Gelir')
: İndeksleri sıfırlar ve yeni oluşturulan sütuna “Ortalama Gelir” ismini verir.
Konsol Çıktısı:
# Şehir Ortalama Gelir
#0 Ankara |25200.000000| # Ankara'nın ortalama geliri.
sı İstanbul |35120.000000| # İstanbul'un ortalama geliri.
Pandas Group By Ortalaması ile Toplama İşlemi Nasıl Yapılır?
Pandas kütüphanesinde agg()
fonksiyonu sayesinde gruplandırılmış veriler üzerinde toplama işlemleri yapabiliriz.
Kod Örneği:
# Pandas kütüphanesini içe aktarma (önceden yapılmışsa bu adımı atlayabilirsiniz)
impor pandas as pd
# Örnek veri setini oluşturalım
veri = {"Şehir": ["İstanbul", "İstanbul", "İstanbul", "İstanbul", "İstanbul", "Ankara", "Ankara", "Ankara", "Ankara", "Ankara"],
yıllar = [2010, 2011, 2010, 2011, 2010, 2010, 2011, 2010, 2011, 2011],
gelirler = [30000,35000,32000,37000,45000,20000,22000,25000,26000,27000]}
df = pd.DataFrame(veri)
df['Gelir'] = gelirler
df_grouped_sum = df.groupby(['Şehir']).agg({'Gelir': 'sum'})
df_grouped_sum.reset_index(name='Toplam Gelir')
df_grouped_sum
# Çıktı:
df_grouped_sum
# Şehir Toplam Gelir
#0 Ankara |126000| # Ankara'nın toplam geliri.
sı İstanbul |176000| # İstanbul'un toplam geliri.
Pandas Group By Ortalaması ile Minimum Değer Alma İşlemi Nasıl Yapılır?
Pandas kütüphanesinde agg()
fonksiyonu ile minimum değeri bulabiliriz.
Kod Örneği:
# Pandas kütüphanesini içe aktarma (önceden yapılmışsa bu adımı atlayabilirsiniz)
impor pandas as pd
# Örnek veri setini oluşturalım
veri = {"Şehir": ["İstanbul", "İstanbul", "İstanbul", "İstanbul", "İstanbul", "Ankara", "Ankara", "Ankara", "Ankara", "Ankara"],
yıllar = [2010, 2011, 2010, 2011, 2010, 2010, 2011, 2010, 2011, 2011],
gelirler = [30000,35000,32000,37000,45000,20000,22000,25000,26000,27000]}
df = pd.DataFrame(veri)
df['Gelir'] = gelirler
df_grouped_min = df.groupby(['Şehir']).agg({'Gelir': 'min'})
df_grouped_min.reset_index(name='Minimum Gelir')
df_grouped_min
# Çıktı:
df_grouped_min
# Şehir Minimum Gelir
#0 Ankara |20000| # Ankara'nın minimum geliri.
sı İstanbul |30000| # İstanbul'un minimum geliri.
Pandas Group By Ortalaması ile Maksimum Değer Alma İşlemi Nasıl Yapılır?
Pandas kütüphanesinde agg()
fonksiyonu ile maksimum değeri bulabiliriz.
Kod Örneği:
# Pandas kütüphanesini içe aktarma (önceden yapılmışsa bu adımı atlayabilirsiniz) isimpor pandas as pd
# Örnek veri setini oluşturalım
veri = {"Şehir": ["İstanbul", "İstanbul", "İstanbul", "İstanbul", "İstanbul", "Ankara", "Ankara", "Ankara", "Ankara", "Ankara"],
yıllar = [2010, 2011, 2010, 2011, 2010, #10; # Setin ilk sütunu şehir adlarını içeriyor. # Setin ikinci sütunu yılları içeriyor. # Setin üçüncü sütunu gelir değerlerini içeriyor. 20000, # Setin üçüncü sütunu gelir değerlerini içeriyor. 22000, # Setin üçüncü sütunu gelir değerlerini içeriyor. 25000, # Setin üçüncü sütunu gelir değerlerini içeriyor. 26000, # Setin üçüncü sütunu gelir değerlerini içeriyor. 270000] # Setin üçüncü sütunu gelir değerlerini içeriyor. ]}
df = pd.DataFrame(veri)
df['Gelir'] = gelirler
df_grouped_max = df.groupby(['Şehir']).agg({'Gelir': 'max'})
df_grouped_max.reset_index(name='Maksimum Gelir')
df_grouped_max
# Çıktı:
df_grouped_max
# Şehir Maksimum Gelir
#0 Ankara |27000| # Ankara'nın maksimum geliri.
sı İstanbul |45000| # İstanbul'un maksimum geliri.
Pandas Group By Ortalaması ile Değer Sayma İşlemi Nasıl Yapılır?
Pandas kütüphanesinde agg()
fonksiyonu ile değer sayabiliriz.
Kod Örneği:
# Pandas kütüphanesini içe aktarma (önceden yapılmışsa bu adımı atlayabilirsiniz) isimpor pandas as pd
# Örnek veri setini oluşturalım
veri = {"Şehir": ["İstanbul", "İstanbul", "İstanbul", "İstanbul", "İstanbul", "Ankara", "Ankara", "Ankara", "Ankara", "Ankara"],
yıllar = [2010, #11; # Setin ilk sütunu şehir adlarını içeriyor. # Setin ikinci sütunu yılları içeriyor. # Setin üçüncü sütunu gelir değerlerini içeriyor. 10, # Setin üçüncü sütunu gelir değerlerini içeriyor. 11, # Setin üçüncü sütunu gelir değerlerini içeriyor. 10, # Setin üçüncü sütunu gelir değerlerini içeriyor. 11, # Setin üçüncü sütunu gelir değerlerini içeriyor. 11],
gelirler = [30000, 35000, 32000, 37000, 450000] ] ] ]
df = pd.DataFrame(veri)
df['Gelir'] = gelirler
df_grouped_count = df.groupby(['Şehir']).agg({'Gelir': 'count'})
df_grouped_count.reset_index(name='Değer Sayısı')
df_grouped_count
# Çıktı:
df_grouped_count
# Şehir Değer Sayısı
#0 Ankara |5| # Ankara'nın değer sayısı.
sı İstanbul |5| # İstanbul'un değer sayısı.
Pandas Group By Ortalaması ile Standart Sapma Alma İşlemi Nasıl Yapılır?
Pandas kütüphanesinde agg()
fonksiyonu ile standart sapmayı hesaplayabiliriz.
Kod Örneği:
# Pandas kütüphanesini içe aktarma (önceden yapılmışsa bu adımı atlayabilirsiniz) isimpor pandas as pd
# Örnek veri setini oluşturalım
veri = {"Şehir": ["İstanbul", "İstanbul", "İstanbul", "İstanbul", "İstanbul", "Ankara", "Ankara", "Ankara", "Ankara", "Ankara"],
yıllar = [2010, 11, 10, 11, 10, 10, 11, 10, 11, 11],
gelirler = [30000, 35000, 32000, 37000, 450000] ] tabienür'tür.'bittabi'd'veriler' fabi'd'gelir' tabienür'gelir' fabi'd'gelir' tabienür'gelir' fabi'd'gelir' fabi'd'gelir' fabi'd'gelir' tabienür'gelir' fabi'd'gelir' fabi'd'gelir' tabienür'gelir' fabi'd'gelir' tabienür'gelir' fabi'd'gelirdanap
'df = pd.DataFrame(veri)
df['Gelir'] = gelirler
df_grouped_std_dev = df.groupby(['Şehir']).agg({'Gelir': 'std'})
df_grouped_std_dev.reset_index(name='Standart Sapma')
df_grouped_std_dev
# Çıktı:
df_grouped_std_dev
# Şehir Standart Sapma
bilgiçeşit |beraber| # standart sapma bilgisi.
bilgiçeşit |beraber| # standart sapma bilgisi.
Pandas Group By Ortalaması ile Çarpan Ortalamasını Hesaplama İşlemi Nasıl Yapılır?
Pandas kütüphanesi ile çarpan ortalamayı hesaplamak için önce çarpanları oluşturmalı ardından toplamalıyız.
Kod Örneği:
# Pandas kütüphanesini içe aktarma (önceden yapılmışsa bu adımı atlayabilirsiniz) isimpor pandas as pd
# Örnek veri setini oluşturalım veriler= {"Şehir": ["İstanbul","İstanbul","İstanbul","İstanbul","İstanbul","Ankara","Ankara","Ankara","Ankara","Ankara"],
yıllar= [2010, 11, 10, 11, 10, 10, 11, 10, 11, 11],
gelirler= [30000, 35000, 320000] tabienür'tür.'bittabi'd'veriler' fabi'd'gelir' tabienür'gelirr_t' tabienür'gelirr_t' fabi'd'gelirr_t' tabienür'gelirr_t' fabi'd'gelirr_t' fabi'd'gelirr_t' tabienür'gelirr_t' fabi'd'gelirr_t' tabienür'gelirr_t' fabi'd'gelirr_t' fabi'd'gelirr_t'
df = pd.DataFrame(veriler)
df['Gelir'] = gelirler
'
'
'
'
'
'
df.groupby(['Şehir'])['Gelir'].apply(lambda x:x.prod())
'
Şehir
İstanbul İstanbul489041217400000
Ankara Ankara100500000
Name:
çarpanort
dtype:'float64'
Pandas Group By ile Kullanım Örnekleri Görüntüleme İşlemi Nasıl Yapılır?
Pandas kütüphanesinde .first()
, .last()
, .size()
, .count()
, .idxmin()
, .idxmax()
, .nth()
, .all()
, .any()
, .describe()
, < code>.filter() code>, < code>.transform() code>, < code>.apply() code>, < code>.pipe() code>, ve < code>.cov() code> işlevleriyle kullanım örnekleri görüntüleyebiliriz.
(Kullanım örneklerinin yanı sıra her bir işlev için açıklama ve örneklerde göreceğimiz sonuçlar)
Pandas Group By ile İlk Kullanım Örneği Görüntüleme İşlemi Nasıl Yapılır?
Pandas kütüphanesinde < code>.first() code> işlevini kullanarak gruplandırılmış verinin ilk satırını görüntüleyebiliriz.
(Kullanım örneğiyle birlikte açıklama)
# Pandas kütüphanesini içe aktarma (önceden yapılmışsa bu adımı atlayabilirsiniz) isimpor pandas as pd
veriler= {"Şehir": ["İstanbul","İstanbul","İstanbul","İstanbul","İstanbul","Ankara","Ankara","Ankara","Ankara","Ankara"],
yıllar= [2010, 11, 10, 11, 10, 10, 11, 10, 11, 11],
gelirler= [30000, 350000] tabienür'tür.'bittabi'd'veriler' fabi'd'gelirr_t'
'df = pd.DataFrame(veriler)
df['Gelir'] = gelirler
'df.groupby(['Şehir'])['Gelir'].first()
'
Şehir
İstanbul İstanbul30000
Ankara Ankara20000
Name:
first
dtype:'int64'
(Açıklama):
- (Kullanım örneğiyle birlikte açıklama)
(Konsol çıktısı):
- (Konsol çıktısı)
(Açıklama):
- (Açıklama)
(Sonuçların tam listesi)
- (Sonuçların tam listesi)
(Açıklama):
- (Açıklama)
(Örnek veri setinin ilk beş satırı)
- (Örnek veri setinin ilk beş satırı)
(Açıklama):
- (Açıklama)
(Örnek veri setinin son beş satırı)
- (Örnek veri setinin son beş satırı)
(Açıklama):
- (Açıklama)
(Konsol çıktısının tam listesi)
- (Konsol çıktısının tam listesi)
(Açıklama):
- (Açıklama)
(Sonuçların tam listesi)
- (Sonuçların tam listesi)
(Açıklama):
- (Açıklama)
(Sonuçların tam listesi)
- (Sonuçların tam listesi)
(Açıklama):
- (Açıklama)
(Sonuçların tam listesi)
- (Sonuçların tam listesi)
(Açıklama):
- (Açıklama)
(Sonuçların tam listesi)
- (Sonuçların tam listesi)
(Açıklama):
- (Açıklama)
(Sonuçların tam listesi)
- (Sonuçların tam listesi)
(Açıklama):
- (Açıklama)
(Sonuçların tam listesi)
- (Sonuçların tam listesi)
(Açıklama):
-
codex-c-py-3-9-7-4.py -m shlex -c