Data Science

Pandas’ta Ustalık: DataFrame’lerde Çoklu Sütun Seçimi

Spread the love

Pandas, veri manipülasyonu ve analizi için güçlü bir Python kütüphanesidir. Yaygın bir görev, bir DataFrame’den belirli sütunları seçmeyi içerir. Bu makale, en iyi uygulamaları vurgulayarak, birden fazla sütun seçmek için verimli ve açık yöntemleri ele almaktadır.

İçindekiler:

Getitem Sözdizimi Kullanımı

En basit yaklaşım, getitem ([]) sözdizimini kullanır. Bu sütunları seçmek için bir sütun adı listesi sağlayın.


import pandas as pd

data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9], 'col4': [10, 11, 12]}
df = pd.DataFrame(data)

# 'col1', 'col3' ve 'col4' sütunlarını seçin
selected_columns = ['col1', 'col3', 'col4']
selected_df = df[selected_columns]
print(selected_df)

Bu özlü ve okunabilirdir, ancak listelenen tüm sütunların DataFrame’de olduğundan emin olun; aksi takdirde, bir KeyError oluşur.

iloc() Kullanımı

iloc(), tamsayı tabanlı indeksleme kullanır. Tamsayı pozisyonlarının bir listesini sağlayarak sütunları seçin (Python’ın sıfır tabanlı indeksleme kullandığını unutmayın).


import pandas as pd

data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9], 'col4': [10, 11, 12]}
df = pd.DataFrame(data)

# 0, 2 ve 3 indekslerindeki sütunları seçin
selected_df = df.iloc[:, [0, 2, 3]]  # : tüm satırları seçer, [0, 2, 3] 0, 2 ve 3 sütunlarını seçer
print(selected_df)

: tüm satırları seçer. Sütun adları bilinmediğinde ancak indeksler mevcut olduğunda iloc() kullanışlıdır.

loc() Kullanımı

loc() etiketleri (sütun adları) kullanır. Birden fazla sütun için getitem’a benzerken, loc birleştirilmiş satır ve sütun seçimleri için daha fazla esneklik sağlar.


import pandas as pd

data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9], 'col4': [10, 11, 12]}
df = pd.DataFrame(data)

# 'col1', 'col3' ve 'col4' sütunlarını seçin
selected_df = df.loc[:, ['col1', 'col3', 'col4']]  # : tüm satırları seçer, ['col1', 'col3', 'col4'] belirtilen sütunları seçer
print(selected_df)

loc, etiket tabanlı seçimi açıkça belirtir, etiketler veya Boole indekslemesi kullanarak satır seçimiyle birleştirildiğinde faydalıdır.

Sütun Seçimi için Boole Dizinleme

Daha karmaşık senaryolar için, loc ile Boole indekslemesi, adlarına uygulanan koşullara göre sütun seçmeyi sağlar.


import pandas as pd

data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9], 'col4': [10, 11, 12], 'other_col': [13,14,15]}
df = pd.DataFrame(data)

# 'col' ile başlayan sütunları seçin
selected_df = df.loc[:, [col.startswith('col') for col in df.columns]]
print(selected_df)

Performans Hususları

Genellikle, getitem en hızlıdır, ardından loc, sonra iloc gelir. Ancak, devasa DataFrame’lerle uğraşılmadığı sürece farklılıklar genellikle ihmal edilebilir düzeydedir. Küçük performans artışlarından ziyade okunabilirliğe ve sürdürülebilirliğe öncelik verin.

Sonuç

Birden fazla sütun seçmek, Pandas’ta temeldir. Bilinen sütun adları için getitem en basitidir. iloc() tamsayı tabanlı indekslemeye uygundur, loc() ise esneklik sağlar ve etiket tabanlı seçim için tercih edilir. En iyi yöntem, belirli ihtiyaçlarınıza ve veri yapınıza bağlıdır.

SSS

  • S: Var olmayan bir sütun seçersem ne olur?
    C: Getitem ve loc, KeyError oluşturur. iloc, indeks sınırların dışında ise IndexError oluşturur.
  • S: Sütunları bir koşula göre seçebilir miyim?
    C: Evet, loc ile Boole indekslemesi kullanın (yukarıda gösterildiği gibi).

Bir yanıt yazın

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