Odak modu

Pandas-Veri Ön İşleme

İndeksleme ve Koşullu Seçim

İ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

İndeksleme

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

Koşullu Seçim

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

Serinin Değerlerini Değiştirme

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")
Background Pattern
Birlikte öğrenelim

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+ mezunu

Patika+ 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!“

Yorumlar

Yorum yapabilmek için derse kayıt olmalısın!