Python Pandas ile Verileri Merge Etmenin Yolları

Python ve Pandas: Temel Bilgiler

Pandas, Python programlama dilinde veri analizi ve manipülasyonu için en popüler kütüphanelerden biridir. Verilerin tabular formatta kolayca yönetilmesine olanak tanır ve veri çerçeveleri (DataFrame) üzerinde güçlü işlemler yapma imkanı sunar. Python’da veri analizi yapmak isteyenler için Pandas, hem kullanıcı dostu olması hem de hızlı işlem süreleri sunmasıyla tercih edilir. Bu kütüphane ile veri yükleme, temizleme ve analiz etme süreçleri oldukça kolaydır.

Veri setlerini birleştirmek (merge), veri işlemlerinin en yaygın ve önemli adımlarından biridir. Farklı veri kaynaklarından gelen bilgileri birleştirerek daha anlamlı analizler yapmak, sonuçların doğruluğunu ve kapsamını artırır. Pandas kütüphanesi, verileri birleştirmek için çeşitli yöntemler sunar; bu yöntemlerin en önemlileri ‘merge’, ‘join’ ve ‘concat’ gibi fonksiyonlardır. Bu yazıda, özellikle ‘merge’ fonksiyonuna odaklanacağız ve nasıl kullanıldığını detaylandıracağız.

Python Pandas Merge Fonksiyonu Nedir?

Pandas kütüphanesinde ‘merge’ fonksiyonu, iki veya daha fazla DataFrame’i belirli bir veya birden fazla anahtar sütunu üzerinden birleştirmeyi sağlar. Bu işlem, SQL veritabanlarında yapılan JOIN işlemlerine benzer. Eğer farklı veri setlerinde benzer bilgileri barındırıyorsanız, bu fonksiyonu kullanarak bu verileri tek bir yapı altında toplayabilirsiniz.

Örneğin, bir ürüne ilişkin satış verilerini ve müşteri bilgilerini ayrı setlerde tutuyorsanız, bu iki veri setini birleştirerek detaylı analizler yapabilirsiniz. ‘merge’ fonksiyonu, belirli veri setleri arasındaki ilişkilere uygun olarak; iç birleştirme (inner join), dış birleştirme (outer join), sağ birleştirme (right join) ve sol birleştirme (left join) gibi farklı birleştirme tipleri sunar. Gelecek kısımlarda bu birleştirme türlerinin nasıl kullanılacağını öğreneceğiz.

Merge Fonksiyonunun Temel Kullanımı

Python’da Pandas kütüphanesini kullanarak veri setlerini birleştirmek için öncelikle merge fonksiyonunu çağırmalısınız. Aşağıda, iki DataFrame’in nasıl oluşturulacağı ve bunların merge edilmesinin temel bir örneği yer almaktadır:

import pandas as pd

# İlk DataFrame'i oluşturalım
veri1 = {
    'MüşteriID': [1, 2, 3, 4],
    'İsim': ['Ahmet', 'Mehmet', 'Ayşe', 'Fatma'],
}
df1 = pd.DataFrame(veri1)

# İkinci DataFrame'i oluşturalım
veri2 = {
    'MüşteriID': [3, 4, 5, 6],
    'Satış Tutarı': [250, 300, 400, 500],
}
df2 = pd.DataFrame(veri2)

# DataFrame'leri merge edelim
df_merge = pd.merge(df1, df2, on='MüşteriID')
print(df_merge)

Yukarıdaki kod örneğinde, iki farklı veri çerçevesi oluşturduk: birincisi müşteri isimlerini içerirken, diğeri satış tutarlarını içeriyor. Bu iki veri çerçevesini ‘MüşteriID’ sütunu üzerinden birleştirdik. Sonuç, ortak ‘MüşteriID’ değerine sahip olan kayıtları birleştiren yeni bir DataFrame olacaktır.

Merge Türleri

Pandas merge fonksiyonunda dört ana birleştirme türü bulunmaktadır: inner join, outer join, left join ve right join.

Inner Join

Inner join (iç birleşim), her iki veri setinde de bulunan ortak anahtarları birleştirir. Yani, sadece her iki DataFrame’de de bulunan değerler için yeni bir satır oluşturulur. Eğer yukarıda verilen örneği inner join ile tekrar uygularsak, yalnızca ‘MüşteriID’ değeri 3 ve 4 olan kayıtlar birleştirilecektir.

df_merge_inner = pd.merge(df1, df2, on='MüşteriID', how='inner')

Bu işlem sonrasında ‘df_merge_inner’ DataFrame’i, sadece kendileri iki veri çerçevesinde de bulunan müşteri bilgilerini içerecektir.

Outer Join

Outer join (dış birleşim), her iki veri setindeki çeşitli değerleri içerecek şekilde yeni satırlar oluşturur. Eğer bir DataFrame’de olan ancak diğerinde olmayan değerler varsa, bu değerler için boş (NaN) alanlar oluşur. Örnek olarak, aşağıda outer join uygulayabiliyoruz:

df_merge_outer = pd.merge(df1, df2, on='MüşteriID', how='outer')

Bu işlem, tüm müşteri verilerini gösterecek ve eksik olan veriler için NaN değerleri kullanacaktır. Yani, müşteri 1 ve 2’nin satış tutarı bilgisi NaN olarak belirtilecektir.

Left Join ve Right Join

Left join (sol birleşim), sol taraftaki (ilk gelene) veri çerçevesindeki tüm değerleri alırken, sağ taraftaki veri çerçevesinden yalnızca eşleşen değerleri alır. Right join (sağ birleşim) ise bunun tersidir ve sağdaki tüm değerleri alıp, soldan yalnızca eşleşenleri alır. Aşağıda left join örneği yer alıyor:

df_merge_left = pd.merge(df1, df2, on='MüşteriID', how='left')

Burada, yalnızca sol veri çerçevesindeki tüm veriler alınacak ve sağda yalnızca eşleşen değerler gösterilecektir. Benzer şekilde, right join uygulamak için:

df_merge_right = pd.merge(df1, df2, on='MüşteriID', how='right')

Tüm bu birleşim türleri, veri setinizi nasıl yapılandırmak istediğinize bağlı olarak farklı kullanım senaryolarında işleyebilir.

Birden Fazla Anahtar ile Merge İşlemi

Pandas’ta birden fazla anahtar kullanarak merge işlemi de gerçekleştirebilirsiniz. Bu durumda, birden fazla sutun üzerinden birleştirme yaparak daha karmaşık veri setlerini yönetebilirsiniz. Aşağıda iki anahtarla merge işlemini görebilirsiniz:

veri3 = {
    'MüşteriID': [1, 2, 3, 4],
    'Şehir': ['İstanbul', 'Ankara', 'İzmir', 'Bursa'],
}
df3 = pd.DataFrame(veri3)

# İkinci DataFrame'i güncelleyelim
df2 = pd.DataFrame({
    'MüşteriID': [3, 4, 5, 6],
    'Şehir': ['İzmir', 'Bursa', 'Ankara', 'İstanbul'],
    'Satış Tutarı': [250, 300, 400, 500],
})

# Birden fazla anahtar ile merge edelim
merge_ikili = pd.merge(df1, df2, on=['MüşteriID', 'Şehir'])
print(merge_ikili)

Birden fazla anahtar kullanarak daha hedefli bir birleştirme yapabilir ve veri setindeki doğru ilişkileri yakalayabilirsiniz.

Merge İşleminde Dikkat Edilmesi Gerekenler

Veri birleştirirken dikkat edilmesi gereken bazı noktalar vardır. Öncelikle, birleştirilecek anahtar sütunlarının her iki DataFrame’de de mevcut olduğundan emin olmalısınız. Eğer anahtar sütunları uyuşmazsa, merge işlemi beklenildiği gibi sonuç vermeyecektir. Ayrıca, hata oluşabilecek durumlarda merge fonksiyonu hata mesajı vermektedir, bu nedenle bu mesajlar dikkatle okunmalıdır.

Ayrıca, merge işleminde NaN değerlerle karşılaşma olasılığı yüksektir, özellikle dış birleşim (outer join) yapıldığında. Bu durumda, eksik değerlerle nasıl başa çıkacağınıza dair stratejiler geliştirmelisiniz. Pandas, NaN değerlerini çeşitli yöntemlerle işler; örneğin dolgu yöntemlerini kullanarak eksik değerleri doldurabilirsiniz.

Son olarak, büyük veri setleri ile çalışıyorsanız, merge işleminin performansını göz önünde bulundurmalısınız. Merge işlemi, veri setinin boyutuna bağlı olarak zaman alabilir, bu nedenle daha iyi performans için veri setleriniz üzerinde filtreleme yapmayı düşünebilirsiniz.

Sonuç ve Öneriler

Pandas kütüphanesi ile veri setlerini merge etmek, veri analizi sürecinin önemli bir parçasıdır. Bu yazıda merge işleminin temellerini, çeşitli birleştirme türlerini ve kullanırken dikkat edilmesi gerekenleri öğrettik. Merge işlemleri, projelerinizde veri ilişkilerini yönetmek ve daha derin analizler yapmak için büyük önem taşımaktadır.

Yeni başlayanlar için, merge işleminin nasıl çalıştığını deneyimlemek adına basit veri setleri ile pratik yapmanızı öneririm. Gerçek dünya senaryolarında, veri setlerinizi daha karmaşık hale getirebilir ve bu durumlarda farklı merge stratejileri ile nasıl başa çıkabileceğinizi öğrenebilirsiniz. Pandas’ın dokümantasyonuna ve topluluk forumlarına göz atmak, daha fazla bilgi edinmenize yardımcı olacaktır.

Son olarak, merge işlemlerinin yanı sıra Pandas’ın sunduğu diğer güçlü özellikleri de keşfetmeyi unutmayın. Veri analizi ve manipülasyonu konusunda daha fazla bilgi sahibi olması, sizi daha etkin bir Python geliştirici yapacaktır.

Scroll to Top