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
.drop
Yöntemini Kullanma (Daha Az Verimli)- Büyük Veri Setleri İçin Performans Hususları
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.