Data Analysis

Pandas’ta Sütun Koşullarına Göre Satır İndekslerini Etkin Bir Şekilde Seçme

Spread the love

Pandas, veri manipülasyonu ve analizi için güçlü bir Python kütüphanesidir. Yaygın bir görev, belirli sütunlara uygulanan koşullara bağlı olarak bir DataFrame’den satırları seçmeyi içerir. Bu makale, belirli bir ölçüte uyan satırların indekslerini almak için üç verimli yöntemi ele almaktadır.

İçerik Tablosu

Boolean İndeksleme: Basit ve Verimli Bir Yaklaşım

Boolean indeksleme, basit seçim ölçütleri için özlü ve verimli bir çözüm sunar. Koşulun doğruluk değerini doğrudan satırları filtrelemek için kullanır.

Bir örnek ile açıklayalım:


import pandas as pd

data = {'col1': [1, 2, 3, 4, 5],
        'col2': [6, 7, 8, 9, 10],
        'col3': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)
print(df)

# 'col1' 2'den büyük olan satırların indekslerini al
indices = df[df['col1'] > 2].index.tolist()
print(indices)  # Çıktı: [2, 3, 4]

Bu kod önce bir Boolean maskeleme (df['col1'] > 2) oluşturur, ardından bunu DataFrame’i filtrelemek için kullanır ve son olarak seçilen satırların indekslerini .index.tolist() kullanarak çıkarır.

NumPy’nin np.where() Fonksiyonunu Esneklik İçin Kullanma

NumPy’nin np.where() fonksiyonu, özellikle karmaşık koşullar veya birden fazla eş zamanlı koşul için yararlı olan daha çok yönlü bir yaklaşım sağlar.


import numpy as np

indices = np.where(df['col1'] > 2)[0].tolist()
print(indices)  # Çıktı: [2, 3, 4]

np.where(df['col1'] > 2) bir demet döndürür; ilk eleman, koşulu sağlayan indekslerin bir dizisini içerir. Bu elemana [0] kullanarak erişir ve .tolist() kullanarak listeye dönüştürürüz.

Pandas’ın query() Fonksiyonunu Okunabilir Karmaşık Sorgular İçin Kullanma

query() yöntemi, özellikle karmaşık koşullar için okunabilirliği artırır. Koşulları dize ifadeleri kullanarak belirtmeyi sağlar.


indices = df.query('col1 > 2').index.tolist()
print(indices)  # Çıktı: [2, 3, 4]

# Birden fazla koşul içeren örnek
indices = df.query('col1 > 2 and col2 < 9').index.tolist()
print(indices)  # Çıktı: [2]

query() yöntemi, koşulun dize gösterimini doğrudan kabul eder, özellikle birden fazla veya karmaşık koşulda okunabilirliği önemli ölçüde iyileştirir.

Sonuç: Her yöntem, bir koşula bağlı olarak indeksleri etkili bir şekilde alır. Boolean indeksleme basit koşullar için en iyisidir; np.where() daha karmaşık senaryoları ele alır; ve query() gelişmiş filtreleme için okunabilirlikte mükemmeldir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir