Python'da Sütun Değerlerine Göre DataFrame Satırlarını Seçme

Python'da Sütun Değerlerine Göre DataFrame Satırlarını Seçme
Python

Veri Çerçevelerini Sütun Değerlerine Göre Filtrelemek için Pandaları Kullanma

Pandas kütüphanesi, Python'da verilerle çalışırken veri işleme ve analiz için güçlü araçlar sunar. Yaygın görevlerden biri, belirli bir sütundaki değerlere göre DataFrame'den satır seçmektir. Bu işlem SQL sorgusuna benzer: SELECT * FROM table WHERE sütun_adı = bazı_değerler.

Bu yazıda Pandalarda bunu çeşitli yöntemler kullanarak nasıl başarabileceğimizi inceleyeceğiz. İster tek bir değere ister birden fazla kritere göre filtreleme yapıyor olun, Pandas bu tür işlemleri gerçekleştirmek için sezgisel ve etkili yollar sunar. Ayrıntılara dalalım.

Emretmek Tanım
pd.DataFrame() Sözlükten veya diğer veri yapılarından bir DataFrame nesnesi oluşturur.
df[condition] DataFrame satırlarını bir koşula göre filtreler ve yalnızca kriterleri karşılayanları döndürür.
print() Belirtilen mesajı veya DataFrame'i konsola çıkarır.
df['column'] == value Sütunun belirtilen değerle eşleştiği satırları filtrelemek için kullanılan bir Boole Serisi oluşturur.
df['column'] >df['column'] > value Sütun değerlerinin belirtilen değerden büyük olduğu satırları filtrelemek için kullanılan bir Boole Serisi oluşturur.
# Comment Kodun içine, betiğin bir parçası olarak yürütülmeyen açıklamalar veya notlar eklemek için kullanılır.

Pandas'ta DataFrame Satır Seçimini Uygulama

Sağlanan komut dosyalarında temel görev, veri analizinde ortak bir gereksinim olan belirli sütun değerlerine göre bir DataFrame'deki satırları filtrelemektir. İlk komut dosyası Pandas kütüphanesini içe aktararak başlar. import pandas as pd. Pandas, Python'da güçlü bir veri işleme kütüphanesi olduğundan bu çok önemlidir. Daha sonra, kullanarak örnek bir DataFrame oluşturuyoruz. pd.DataFrame() isimler, yaşlar ve şehirler için veriler içeren bir sözlükle. Bu yapı, tablo halindeki verileri kolayca görselleştirmemize ve işlememize olanak tanır. Komut dosyasının en önemli kısmı satırları filtrelediğimiz yerdir. df[df['city'] == 'New York']. Bu komut, şehir sütununun değerinin 'New York' olduğu tüm satırları seçer. Sonuç değişkende saklanır ny_rows, daha sonra filtrelenen DataFrame'i görüntülemek için yazdırılır.

İkinci komut dosyası da benzer bir yapı izler ancak satırları sayısal bir koşula göre filtrelemeye odaklanır. Pandaları içe aktardıktan ve ürün, fiyat ve miktar sütunlarını içeren bir DataFrame oluşturduktan sonra komut dosyası şunu kullanır: df[df['price'] > 150] fiyatın 150'den büyük olduğu satırları filtrelemek için. Bu komut, yalnızca belirtilen koşulu karşılayan satırları içeren orijinal DataFrame'in bir alt kümesini oluşturur. Sonuç şuraya kaydedilir: expensive_products ve doğrulama için yazdırılır. Her iki komut dosyası da Pandaların veri işleme konusundaki gücünü ve basitliğini göstermektedir. Verileri filtrelemek için bir dizi doğru/yanlış değeri ilettiğimiz bir yöntem olan boole indekslemeyi kullanarak, çeşitli koşullara dayalı olarak veri alt kümelerini verimli bir şekilde seçebiliriz, bu da onu veri analistleri ve bilim adamları için paha biçilmez bir araç haline getirir.

Sütun Değerlerine Göre DataFrame'deki Satırları Filtreleme

Python - DataFrame İşlemleri için Pandaları Kullanmak

import pandas as pd
# Create a sample DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
    'age': [24, 27, 22, 32, 29],
    'city': ['New York', 'Los Angeles', 'New York', 'Chicago', 'Los Angeles']
}
df = pd.DataFrame(data)

# Select rows where city is New York
ny_rows = df[df['city'] == 'New York']
print(ny_rows)

# Output:
#       name  age      city
# 0    Alice   24  New York
# 2  Charlie   22  New York

Sütun Değerlerine Göre DataFrame Satırlarını Sorgulama

Python - Pandalarla Gelişmiş Filtreleme

import pandas as pd

# Create a sample DataFrame
data = {
    'product': ['A', 'B', 'C', 'D'],
    'price': [100, 150, 200, 250],
    'quantity': [30, 50, 20, 40]
}
df = pd.DataFrame(data)

# Select rows where price is greater than 150
expensive_products = df[df['price'] > 150]
print(expensive_products)

# Output:
#   product  price  quantity
# 2       C    200        20
# 3       D    250        40

DataFrame Satırlarını Seçmek İçin Gelişmiş Teknikler

Boole indeksleme ile temel filtrelemeye ek olarak Pandas, sütun değerlerine göre satır seçmek için daha gelişmiş teknikler sunar. Böyle bir yöntem, query() DataFrame satırlarını filtrelemek için SQL benzeri sözdizimini kullanmanıza olanak tanıyan işlev. Örneğin şunları kullanabilirsiniz: df.query('age > 25 and city == "New York"') Yaşın 25'ten büyük olduğu ve şehrin New York olduğu satırları seçmek için Bu yöntem, özellikle karmaşık durumlarda kodunuzu daha okunabilir hale getirebilir. Ek olarak Pandalar şunları sağlar: loc[] Ve iloc[] Daha hassas satır seçimi için erişimciler. loc[] erişimci etiket tabanlıdır, yani satırları etiketlerine veya bir boole dizisine göre filtreleyebilirsiniz. Buna karşılık, iloc[] erişimci tam sayı konumuna dayalıdır ve satırları dizin konumlarına göre filtrelemenize olanak tanır.

Pandas'ın bir diğer güçlü özelliği de DataFrame satırlarını filtreleyebilme yeteneğidir. isin() yöntem. Bu yöntem, satırları bir değerler listesine göre filtrelemeniz gerektiğinde kullanışlıdır. Örneğin, df[df['city'].isin(['New York', 'Los Angeles'])] şehir sütunu değerinin New York veya Los Angeles olduğu satırları seçer. Ayrıca, birden fazla koşulu kullanarak zincirleyebilirsiniz. & Ve | operatörlerin daha karmaşık filtreler oluşturmasını sağlar. Örneğin, df[(df['age'] > 25) & (df['city'] == 'New York')] yaşın 25'ten büyük olduğu ve şehrin New York olduğu satırları filtreler. Bu gelişmiş teknikler, veri filtreleme için sağlam bir çerçeve sağlayarak Pandas'ı veri analizi ve manipülasyonu için çok yönlü bir araç haline getirir.

Pandalar'da DataFrame Satırlarını Seçmeyle İlgili Yaygın Sorular

  1. Birden çok sütun değerine göre DataFrame'deki satırları nasıl filtreleyebilirim?
  2. Boolean indekslemeyi kullanarak birden fazla koşulu birleştirerek kullanabilirsiniz. & Ve |. Örneğin: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Arasındaki fark nedir loc[] Ve iloc[]?
  4. loc[] etiket tabanlıdır, ancak iloc[] tamsayı konumu tabanlıdır. Kullanmak loc[] etiketlere göre filtrelemek için ve iloc[] dizin konumlarına göre filtrelemek için.
  5. Bunu nasıl kullanabilirim? query() DataFrame satırlarını filtreleme işlevi?
  6. query() işlevi SQL benzeri sözdizimini kullanmanızı sağlar. Örneğin: df.query('age > 25 and city == "New York"').
  7. Değerler listesine göre satırları filtreleyebilir miyim?
  8. Evet, kullanabilirsiniz isin() yöntem. Örneğin: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Satırları dize eşleşmesine göre filtrelemenin en iyi yolu nedir?
  10. Şunu kullanabilirsiniz: str.contains() yöntem. Örneğin: df[df['city'].str.contains('New')].
  11. Sütun değerlerinin eksik olduğu satırları nasıl seçerim?
  12. Şunu kullanabilirsiniz: isna() yöntem. Örneğin: df[df['age'].isna()].
  13. Özel bir işlevi kullanarak satırları nasıl filtreleyebilirim?
  14. Şunu kullanabilirsiniz: apply() lambda fonksiyonlu yöntem. Örneğin: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Satırları dizin değerlerine göre filtreleyebilir miyim?
  16. Evet, kullanabilirsiniz index.isin() yöntem. Örneğin: df[df.index.isin([1, 3, 5])].

DataFrame Satır Seçimi için Temel Çıkarımlar

Sütun değerlerine göre bir DataFrame'den satır seçmek, Pandas ile veri analizinde temel bir beceridir. Boolean indekslemeyi kullanarak, loc[], iloc[], query(), Ve isin() yöntemler verimli veri filtrelemeye olanak tanır. Bu tekniklere hakim olmak, veri kümelerini etkili bir şekilde işleme ve analiz etme yeteneğinizi geliştirir.