Pandas DataFrame’lerini İndekslerine Göre Etkin Bir Şekilde Birleştirme
Pandas, veri manipülasyonu için güçlü araçlar sunar ve DataFrame’leri birleştirmek yaygın bir işlemdir. DataFrame’leriniz ortak bir indekse sahip olduğunda, etkin bir birleştirme için bu ortak bilgiyi kullanmak önemlidir. Bu makale, tercih edilen teknik olarak join()
yöntemine odaklanarak, Pandas DataFrame’lerini indekslerine göre birleştirmenin en iyi yaklaşımlarını ele almaktadır.
İçindekiler
- İndeks Tabanlı Birleştirmeler için
join()
Yönteminin Kullanımı - İndeks Tabanlı Birleştirmeler için
merge()
‘in Anlaşılması (Az Tercih Edilen) - İhtiyaçlarınız İçin En İyi Yöntemi Seçme
İndeks Tabanlı Birleştirmeler için join()
Yönteminin Kullanımı
join()
yöntemi, özellikle indekslerine göre DataFrame’leri birleştirmek için tasarlanmıştır. İndeks tabanlı işlemler için merge()
kullanmaya kıyasla daha temiz ve genellikle daha verimli bir çözüm sunar. Sezgisel sözdizimi, anlaşılmasını ve uygulanmasını kolaylaştırır.
İşte bir örnek:
import pandas as pd
# Örnek DataFrame'ler
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['X', 'Y', 'Z'])
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]}, index=['Y', 'Z', 'X'])
# İndekslere göre DataFrame'leri birleştirme
joined_df = df1.join(df2, how='inner') # 'inner', 'outer', 'left', 'right' geçerli seçeneklerin hepsidir.
print(joined_df)
Bu kod, df1
ve df2
‘yi indekslerine göre birleştirir. how
parametresi birleştirme türünü belirtir: 'inner'
(yalnızca eşleşen indeksler), 'outer'
(tüm indeksler), 'left'
(df1
‘den indeksler) veya 'right'
(df2
‘den indeksler). Varsayılan, sol birleştirmedir.
İndeks Tabanlı Birleştirmeler için merge()
‘in Anlaşılması (Az Tercih Edilen)
Öncelikle sütun tabanlı birleştirmeler için tasarlanmış olsa da, merge()
fonksiyonu indeks tabanlı birleştirmeleri de işleyebilir. Bununla birlikte, bu, kodu daha az okunabilir ve join()
‘e kıyasla potansiyel olarak daha az verimli hale getiren left_index
ve right_index
parametrelerinin açıkça True
olarak ayarlanmasını gerektirir.
merge()
kullanarak aynı birleştirmeyi nasıl başaracağınız aşağıdadır:
import pandas as pd
# Örnek DataFrame'ler (yukarıdakilerle aynı)
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['X', 'Y', 'Z'])
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]}, index=['Y', 'Z', 'X'])
# merge() kullanarak indekslere göre DataFrame'leri birleştirme
merged_df = pd.merge(df1, df2, left_index=True, right_index=True, how='inner')
print(merged_df)
İhtiyaçlarınız İçin En İyi Yöntemi Seçme
Pandas’ta indeks tabanlı birleştirme için, join()
yöntemi genellikle önerilir. Açık sözdizimi ve sıklıkla iyileştirilmiş verimliliği, çoğu senaryo için üstün bir seçim yapar. Sütun tabanlı birleştirmelerle birlikte indeks tabanlı birleştirmelere ihtiyaç duyduğunuzda veya belirli nedenlerle işlevselliğini tercih ettiğinizde yalnızca merge()
‘i kullanın.