Pandas, veri manipülasyonu ve analizi için güçlü bir Python kütüphanesidir. Sütun değerlerine göre DataFrame satırlarını filtrelemek, veri işlemede temel bir görevdir. Bu makale, basit senaryolardan karmaşık senaryolara kadar Pandas DataFrame’lerini verimli bir şekilde filtrelemenin çeşitli tekniklerini ele almaktadır.
İçerik Tablosu
- Temel Filtreleme: Tek Sütun, Tek Koşul
- Olumsuzlama: Bir Koşulla Eşleşmeyen Satırları Seçme
- Sayısal Karşılaştırmalar: Büyükten Küçüğe, vb.
- Koşulların Birleştirilmesi: VE ve VEYA İşlemleri
- Gelişmiş Filtreleme: Çoklu Sütunlar ve Karmaşık Mantık
isin()
ile Verimli Filtreleme
Temel Filtreleme: Tek Sütun, Tek Koşul
Filtrelemenin en basit biçimi, belirli bir sütunun belirli bir değeri eşleştiği satırları seçmeyi içerir. Bu, Boole indekslemesi kullanılarak gerçekleştirilir.
import pandas as pd
# Örnek DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 22, 28],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
# City 'London' olan satırları seçin
london_residents = df[df['City'] == 'London']
print(london_residents)
Bu kod, ‘City’ sütununun ‘London’ olduğu yerde True
, aksi takdirde False
olan bir Boole maskesi (df['City'] == 'London'
) oluşturur. Bu maske daha sonra, maskenin True
olduğu satırları seçerek DataFrame’i indekslemek için kullanılır.
Olumsuzlama: Bir Koşulla Eşleşmeyen Satırları Seçme
Bir sütunun belirli bir değeri içermediği satırları seçmek için, !=
operatörünü kullanarak Boole koşulunu olumsuzlayın.
# City 'London' OLMAYAN satırları seçin
not_london_residents = df[df['City'] != 'London']
print(not_london_residents)
Sayısal Karşılaştırmalar: Büyükten Küçüğe, vb.
Sayısal sütunlar için, değer aralıklarına göre filtrelemek üzere karşılaştırma operatörlerini (>
, <
, >=
, <=
) kullanın.
# Yaşı 25'ten büyük olan satırları seçin
older_than_25 = df[df['Age'] > 25]
print(older_than_25)
# Yaşı 25 veya daha küçük olan satırları seçin
younger_than_or_equal_to_25 = df[df['Age'] <= 25]
print(younger_than_or_equal_to_25)
Koşulların Birleştirilmesi: VE ve VEYA İşlemleri
Mantıksal operatörler &
(VE) ve |
(VEYA) ile Boole koşullarını birleştirerek birden fazla sütun değerine göre filtreleyin. Her koşulu parantez içine alın.
# City 'London' VE Yaş 25'ten büyük olan satırları seçin
london_and_older = df[(df['City'] == 'London') & (df['Age'] > 25)]
print(london_and_older)
# City 'London' VEYA Yaş 25'ten büyük olan satırları seçin
london_or_older = df[(df['City'] == 'London') | (df['Age'] > 25)]
print(london_or_older)
Gelişmiş Filtreleme: Çoklu Sütunlar ve Karmaşık Mantık
Karmaşık senaryolar için, query()
yöntemi daha iyi okunabilirlik sunar.
# Daha iyi okunabilirlik için query() kullanımı
complex_filter = df.query('(City == "London" and Age > 25) or (Age < 23)')
print(complex_filter)
isin()
ile Verimli Filtreleme
isin()
yöntemi, değerlerin bir listede olup olmadığını kontrol etmenin özlü bir yolunu sağlar.
cities_to_include = ['London', 'Paris']
filtered_df = df[df['City'].isin(cities_to_include)]
print(filtered_df)
Bu makale, Pandas’ta DataFrame’leri filtrelemenin çeşitli tekniklerini göstermiştir. Doğru yöntemi seçmek, filtreleme kriterlerinizin karmaşıklığına bağlıdır. Doğru sonuçlar elde etmek için mantıksal operatörlerle parantezleri doğru kullanmayı unutmayın.