Grouped Summary Statistics
Pandas, verileri belirli sütunlara göre gruplandırarak özet istatistikler elde etmenizi sağlar. Bu, verilerin anlamlı bir şekilde analiz edilmesine olanak tanır.
groupby() Fonksiyonu
groupby() fonksiyonu, belirli bir sütuna göre verileri gruplar ve her grup üzerinde toplama fonksiyonları uygulamanıza olanak tanır.
Örnek:
import pandas as pd
# DataFrame oluşturma
data = {
"Öğrenci": ["Ali", "Ayşe", "Mehmet", "Fatma", "Ahmet", "Hasan", "Zeynep", "Hüseyin", "Elif", "Mert"],
"Sınıf": ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B"],
"Matematik": [85, 95, 70, 90, 78, 82, 88, 75, 92, 80],
"Fizik": [90, 85, 80, 92, 75, 88, 91, 77, 89, 85],
"Kimya": [78, 88, 85, 89, 80, 84, 87, 73, 90, 82]
}
df = pd.DataFrame(data)
# 'Sınıf' sütununa göre gruplama ve 'Matematik' notlarının ortalamasını hesaplama
grouped_math = df.groupby('Sınıf')['Matematik'].mean()
print("Average Math Scores by Class:\\n", grouped_math)
# Çıktı:
# Average Math Scores by Class:
# Sınıf
# A 82.6
# B 84.4
# Name: Matematik, dtype: float64
Gruplandırılmış Özet İstatistikler
Gruplandırılmış veriler üzerinde çeşitli özet istatistikler hesaplayabilirsiniz.
Örnek:
import pandas as pd
# 'Sınıf' sütununa göre gruplama ve özet istatistikler hesaplama
grouped_stats = df.groupby('Sınıf').agg({
'Matematik': ['mean', 'sum', 'std'],
'Fizik': ['mean', 'min', 'max'],
'Kimya': ['count', 'mean']
})
print("Grouped Summary Statistics:\\n", grouped_stats)
# Çıktı:
# Matematik Fizik Kimya
# mean sum std mean min max count mean
# Sınıf
# A 82.6 413 7.72651 85.0 75 91 5 84.0
# B 84.4 422 8.34708 83.4 77 92 5 83.2
Pivot Tables
Pivot tablolar, verileri özetlemek ve analiz etmek için güçlü bir araçtır. Pandas'ta pivot tablolar oluşturmak için pivot_table() fonksiyonu kullanılır.
Pivot Table Oluşturma
pivot_table() fonksiyonu, verileri belirli bir düzende yeniden şekillendirerek özetler.
Örnek:
import pandas as pd
# DataFrame oluşturma
data = {
"Öğrenci": ["Ali", "Ayşe", "Mehmet", "Fatma", "Ahmet", "Hasan", "Zeynep", "Hüseyin", "Elif", "Mert"],
"Sınıf": ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B"],
"Matematik": [85, 95, 70, 90, 78, 82, 88, 75, 92, 80],
"Fizik": [90, 85, 80, 92, 75, 88, 91, 77, 89, 85],
"Kimya": [78, 88, 85, 89, 80, 84, 87, 73, 90, 82]
}
df = pd.DataFrame(data)
# Pivot table oluşturma
pivot = pd.pivot_table(df, values='Matematik', index='Sınıf', columns='Öğrenci', aggfunc='mean')
print("Pivot Table:\\n", pivot)
# Çıktı:
# Öğrenci Ahmet Ali Ayşe Elif Fatma Hasan Hüseyin Mehmet Mert Zeynep
# Sınıf
# A 78.0 85.0 NaN 92.0 NaN NaN NaN 70.0 NaN 88.0
# B NaN NaN 95.0 NaN 90.0 82.0 75.0 NaN 80.0 NaN
Çoklu Toplama Fonksiyonları ile Pivot Table
Bir pivot tabloya birden fazla toplama fonksiyonu uygulamak mümkündür.
Örnek:
import pandas as pd
# Pivot table oluşturma ve birden fazla toplama fonksiyonu uygulama
pivot_multiple = pd.pivot_table(df, values=['Matematik', 'Fizik'], index='Sınıf', aggfunc={'Matematik': 'mean', 'Fizik': ['mean', 'max']})
print("Pivot Table with Multiple Aggregation Functions:\\n", pivot_multiple)
# Çıktı:
# Matematik Fizik
# mean mean max
# Sınıf
# A 82.6 85.0 91
# B 84.4 83.4 92
Pivot Table ile Veri Filtreleme
Pivot tablolar, belirli koşullara göre verileri filtrelemenize olanak tanır.
Örnek:
import pandas as pd
# Pivot table oluşturma ve veri filtreleme
pivot_filtered = pd.pivot_table(df, values='Kimya', index='Sınıf', columns='Öğrenci', aggfunc='mean')
pivot_filtered = pivot_filtered[pivot_filtered.mean(axis=1) > 80]
print("Filtered Pivot Table:\\n", pivot_filtered)
# Çıktı:
# Öğrenci Ahmet Ali Ayşe Elif Fatma Hasan Hüseyin Mehmet Mert Zeynep
# Sınıf
# A 80.0 78.0 NaN 90.0 NaN NaN NaN 85.0 NaN 87.0
# B NaN NaN 88.0 NaN 89.0 84.0 73.0 NaN 82.0 NaN
Bu dersin sekizinci partı ile Pandas ile gruplama ve pivot tabloları kullanarak veri analizi yapmayı öğrendik. groupby() fonksiyonunu kullanarak verileri gruplama ve özet istatistikler hesaplamayı, pivot tablolar oluşturarak verileri yeniden şekillendirmeyi ve filtrelemeyi inceledik. Bir sonraki partta, Pandas ile dilimleme ve indeksleme tekniklerini inceleyeceğiz ve bu teknikleri uygulayacağız.
Python temellerini atıp, veri analizi ve bilimi için yetkinlik kazanmak istiyorsanız, 1 aylık yoğun Python kampına hemen kayıt olabilirsiniz. ~40 saat canlı ders, ~50 adet kapsamlı proje, ~15 adet quiz ve sayısız kodlama egzersizinden oluşan, Finlandiya eğitim modellerinden esinlenilerek Helsinki'de geliştirilen interaktif ve pratik odaklı eğitim programına hemen göz atın !