Odak modu
İndeksleme ve Koşullu Seçim
Notebook Link: https://github.com/ine-rmotr-curriculum/freecodecamp-intro-to-pandas/blob/master/1%20-%20Pandas%20-%20Series.ipynb
Seri bir sözlük gibidir ve değerlerini bir NumPy array'de tutar. Sözlükte nasıl bir değere ulaşabiliyorsak seride de ulaşabiliriz. Pokemon serisini bir hatırlayalım.
series
Bulbasaur 49 Charmander 43 Squirtle 65 Pikachu 40 Onix 160 Name: Pokemon Savunma Güçleri, dtype: int64
Örneğin, Pikachu'nun değerini yazdıralım.
series["Pikachu"]
40
Ayrıca serinin ".iloc" metodunu kullanarak değerlere sayısal indekslerini kullanarak da erişebiliriz.
# 2 indeksli değere ulaşalım, arrayin 3. değeri series.iloc[2]
65
# arrayin son değerine ulaşalım series.iloc[-1]
160
Birden çok indeks kullanarak da değerleri seçebiliriz (Bu bize başka bir Series döndürür).
series[["Bulbasaur", "Onix"]]
Bulbasaur 49 Onix 160 Name: Pokemon Savunma Güçleri, dtype: int64
Aynı şekilde birden çok sayısal indeks seçebiliriz.
series[[1, 4]]
Charmander 43 Onix 160 Name: Pokemon Savunma Güçleri, dtype: int64
Dilimleme yaparak yani başlangıç ve bitiş indekslerini belirterek de seçim yapabiliriz (Pandas'ta bitiş değeri de sonuca eklenir! Örneğin aşağıda Squirtle da dahildir.)
series["Bulbasaur": "Squirtle"]
Bulbasaur 49 Charmander 43 Squirtle 65 Name: Pokemon Savunma Güçleri, dtype: int64
Serilerde, Numpy arraylerdeki gibi bir koşul ile boolean seçim yapabiliriz.
series > 45
Bulbasaur True Charmander False Squirtle True Pikachu False Onix True Name: Pokemon Savunma Güçleri, dtype: bool
Boolean indeksleme de yapabiliriz.
series[series > 45]
Bulbasaur 49 Squirtle 65 Onix 160 Name: Pokemon Savunma Güçleri, dtype: int64
Ortalamasını, standart sapmasını vb. Bulabiliriz. Numpy arraylerde yapabileceğimiz çoğu türlü işlemi yapabiliriz.
series.mean()
71.4
Ortalamanın üstündeki değerleri seçelim.
series[series > series.mean()]
Onix 160 Name: Pokemon Savunma Güçleri, dtype: int64
(Sadece Onix, diğer pokemonlara fark atmış!)
İki koşulu parantezlere koyarak seçebiliriz.
series[(series > 45) & (series < 100)]
Bulbasaur 49 Squirtle 65 Name: Pokemon Savunma Güçleri, dtype: int64
Serileri istediğimiz gibi düzenleyebiliriz. İndeksi ile seçerek:
series["Pikachu"] = 70 # Pikachu'yu güçlendirdik series["Pikachu"] # yazdıralım
70
50'den yüksek olan değerleri 50 yapalım.
series[series > 50] = 50 series # yazdıralım
Bulbasaur 49 Charmander 43 Squirtle 50 Pikachu 50 Onix 50 Name: Pokemon Savunma Güçleri, dtype: int64
Orijinal seriyi tekrar oluşturalım.
series = pd.Series({
'Bulbasaur': 49,
'Charmander': 43,
'Squirtle': 65,
'Pikachu': 40,
'Onix': 160
}, name="Pokemon Savunma Güçleri")
Sektörde en çok aranan yazılım becerilerini kazan
Yapay zeka desteği, birebir mentörlük saatleri, canlı dersler ve senin için özel hazırlanmış içeriklerle eksiklerini tamamla, düzenli geri bildirimler al ve öğrenme sürecini en verimli hale getir.
Yunus Emre Kabakcı
Patika+ mezunuPatika+ Fullstack Web Development Bootcamp mezunumuz Yunus Emre,
3 ay içinde Katar’dan aldığı teklif ile, global bir şirket olan Pavo Group’da işe başladı!
“İçerik zenginliği, mentor desteği, ileriye dönük bir network sağlaması ve dünyada en çok tercih edilen frameworkler üzerinden bir eğitim veriyor olması Patika+’ı tercih etmemin temel sebepleri oldu!“
Yorum yapabilmek için derse kayıt olmalısın!