Data Science

Pandas DataFrame’lerinde Verimli Satır Silme

Spread the love

Pandas, veri manipülasyonu için güçlü bir Python kütüphanesidir. Yaygın bir görev, sütun değerlerine göre DataFrame’den satır silmektir. Bu makale, bunun için verimli yöntemleri ele almaktadır.

İçerik Tablosu

Boolean Maskeleme ile Verimli Satır Silme

Boolean maskeleme, bir sütunun değerlerine göre satırları kaldırmanın en özlü ve verimli yolunu sağlar. Boolean bir koşul kullanarak DataFrame’i doğrudan filtreler.


import pandas as pd

# Örnek DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 25, 35],
        'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
print("Orijinal DataFrame:n", df)

# Yaşı 25 olan satırları kaldır
df = df[df['Age'] != 25]  
print("nYaşı 25 olan satırlar kaldırıldıktan sonra DataFrame:n", df)

df['Age'] != 25 bir boolean Serisi oluşturur. ‘Age’nin 25 olmadığı satırları True gösterir. Bunu df‘i indekslemek için kullanmak, yalnızca koşulun True olduğu satırları koruyarak doğrudan filtreleme yapar. Bu, özellikle büyük veri setleri için hızı ve bellek verimliliğini artırarak, indeksleri bulma ara adımından kaçınır.

.drop Yöntemini Kullanma (Daha Az Verimli)

.drop yöntemi, indeks etiketine göre satırları kaldırır. Sütun değerlerine göre silmek için, önce boolean indeksleme kullanarak ilgili indeksleri belirlemeniz gerekir.


import pandas as pd

# Örnek DataFrame (öncekiyle aynı)
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 25, 35],
        'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
print("Orijinal DataFrame:n", df)

# Yaşı 25 olan satırların indekslerini belirle
indices_to_drop = df[df['Age'] == 25].index

# .drop kullanarak satırları kaldır
df = df.drop(indices_to_drop)
print("nYaşı 25 olan satırlar kaldırıldıktan sonra DataFrame:n", df)

#Yerinde değişiklik (orijinal DataFrame'i doğrudan değiştirir)
#df.drop(indices_to_drop, inplace=True) 

Bu yaklaşım, açık olmasına rağmen, özellikle büyük DataFrame’ler için, indeksleri belirleme ve ardından bırakma ek adımı nedeniyle boolean maskelemeden daha az verimlidir.

Büyük Veri Setleri İçin Performans Hususları

Küçük veri setleri için, bu yöntemler arasındaki performans farkı ihmal edilebilir olabilir. Bununla birlikte, büyük veri setlerinde boolean maskeleme, .drop yönteminden önemli ölçüde daha iyi performans gösterir. Boolean maskeleme doğrudan temel veriler üzerinde çalışırken, .drop yeni bir DataFrame oluşturur ve bu da bellek sorunlarına ve daha yavaş işlem sürelerine yol açabilir.

Bir yanıt yazın

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