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ı
iloc()
Kullanımıloc()
Kullanımı- Sütun Seçimi için Boole Dizinleme
- Performans Hususları
- Sonuç
- SSS
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 veloc
,KeyError
oluşturur.iloc
, indeks sınırların dışında iseIndexError
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).