CodeBlanks Logo Icon CodeBlanks

Veri seçme ve filtreleme

DataFrame'de koşula göre satır seçmek için boolean filtreleme kullanılır.

Koşulla filtreleme

NumPy'daki boolean maske pandas'ta da çalışır:

genc = df[df["yas"] < 30]
zengin_genc = df[(df["yas"] < 30) & (df["maas"] > 4000)]
print(len(genc))

Koşulları & ve | ile birleştirirken parantez zorunludur; Python'un and/or anahtar kelimeleri burada çalışmaz.

loc ve iloc

loc etiketle, iloc konumla seçer; ikisi de [satır, sütun] biçimini kullanır:

df.loc[df["yas"] > 30, "ad"]   # koşullu satırların ad sütunu
df.iloc[0]                     # ilk satır
df.iloc[:2, 1]                 # ilk iki satırın ikinci sütunu

loc ile filtre ve sütun seçimini tek adımda yapmak hem okunur hem de "SettingWithCopy" uyarısını önler.

Uygulama Filtrele ve seç

Yaşı 25'ten büyük ve maaşı 4500'den büyük kişilerin adlarını loc ile seç ve tolist() ile liste olarak yazdır.

Başlangıç kodu

model.py
import pandas as pd

df = pd.DataFrame({
    "ad": ["Ali", "Ece", "Can", "Su"],
    "yas": [34, 28, 45, 22],
    "maas": [5000, 4200, 7100, 3000],
})

# buraya yaz

Örnek çözüm

model.py
import pandas as pd

df = pd.DataFrame({
    "ad": ["Ali", "Ece", "Can", "Su"],
    "yas": [34, 28, 45, 22],
    "maas": [5000, 4200, 7100, 3000],
})

secilen = df.loc[(df["yas"] > 25) & (df["maas"] > 4500), "ad"]
print(secilen.tolist())

Beklenen çıktı

['Ali', 'Can']

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>df[df["yas"] &gt; 30 and df["maas"] &gt; 0]</code> neden hata verir?

  • 30 metin olmalıdır
  • Hata vermez
  • and bir Series'in tek doğruluk değerini ister; &amp; ve parantez gerekir Doğru cevap
  • Sütun yoktur

Açıklama: Eleman bazlı "ve" için (koşul1) &amp; (koşul2) yazılır.

2 Konuma göre ilk satırı seç.

Soru
ilk = df.____[0]
Cevap
ilk = df.iloc[0]

Açıklama: iloc tam sayı konumlarla çalışır.

3 Seçicileri eşleştir.

Kavram Anlamı
loc Etiketle seçim
iloc Konumla seçim
& Eleman bazlı ve
| Eleman bazlı veya

Başlangıç bölümündeki tüm dersler