Focus mode

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")

Comments

You need to enroll in the course to be able to comment!