logo

Pandalar DataFrame.merge()

Pandalar birleştirmek() iki veri kümesinin bir araya getirilmesi ve satırların ortak niteliklere veya sütunlara göre hizalanması işlemi olarak tanımlanır. DataFrame nesneleri arasındaki tüm standart veritabanı birleştirme işlemleri için bir giriş noktasıdır:

Sözdizimi:

 pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True) 

Parametreler:

    Sağ: DataFrame veya adlandırılmış Seri
    DataFrame ile birleşen bir nesnedir.Nasıl: {'sol', 'sağ', 'dış', 'iç'}, varsayılan 'iç'
    Gerçekleştirilecek birleştirme türü.
      sol:SQL'in sol dış birleşimine benzer şekilde yalnızca sol çerçevedeki tuşları kullanır; anahtar sırasını koruyun.Sağ:SQL'in sağ dış birleşimine benzer şekilde yalnızca sağ çerçevedeki anahtarları kullanır; anahtar sırasını koruyun.dış:SQL tam dış birleşimine benzer şekilde, her iki çerçevedeki anahtarların birleşimini kullandı; anahtarları sözlükbilimsel olarak sıralayın.iç:SQL iç birleşimine benzer şekilde, her iki çerçevedeki tuşların kesişimini kullanır; sol tuşların sırasını koruyun.
    Açık: etiket veya liste
    Birleştirilecek bir sütun veya dizin düzeyinde adlardır. Hem sol hem de sağ DataFrames'te bulunmalıdır. Açık Yok ise ve dizinlerde birleştirilmiyorsa, bu durumda varsayılan olarak her iki DataFrames'teki sütunların kesişimi olur.
    sol: etiket veya liste veya dizi benzeri
    Anahtar olarak kullanılacak sol DataFrame'den sütun veya dizin düzeyindeki adlardır. DataFrame'in uzunluğuna eşit uzunlukta bir dizi olabilir.kesinlikle doğru: etiket veya liste veya dizi benzeri
    Anahtar olarak kullanılacak sağ DataFrame'den gelen sütun veya dizin düzeyindeki adlardır. DataFrame'in uzunluğuna eşit uzunlukta bir dizi olabilir.left_index: bool, varsayılan Yanlış
    Eğer doğruysa, birleştirme anahtarları olarak sol DataFrame'deki dizini kullanır. MultiIndex (hiyerarşik) durumunda, diğer DataFrame'deki (dizin veya bazı sütunlar) birçok anahtarın düzey sayısıyla eşleşmesi gerekir.sağ_index: bool, varsayılan Yanlış
    Birleştirme anahtarı olarak sağ DataFrame'deki dizini kullanır. left_index ile aynı kullanıma sahiptir.düzenlemek: bool, varsayılan Yanlış
    True ise, DataFrame sonucunda birleştirme anahtarlarını sözlükbilimsel sıraya göre sıralar. Aksi takdirde, birleştirme tuşlarının sırası birleştirme türüne (nasıl anahtar kelime) bağlıdır.son ekler: (str, str), varsayılan ('_x', '_y')'nin tuple'ı
    Sırasıyla sol ve sağ DataFrame'deki sütun adlarının üst üste gelmesi için uygulanacak son ekler. Sütunlar, çakışma konusunda bir istisna oluşturmak için (Yanlış, Yanlış) değerlerini kullanır.kopyala: bool, varsayılan Doğru
    True ise DataFrame'in bir kopyasını döndürür.
    Aksi takdirde kopyadan kaçınılabilir.gösterge: bool veya str, varsayılan Yanlış
    True ise, DataFrame çıktısına bir sütun ekler. _birleştirmek ' Her satırın kaynağı hakkında bilgi içeren. Bu bir dize ise, DataFrame çıktısına her satırın kaynağı hakkında bilgi içeren bir sütun eklenecek ve sütun, bir dizenin değeri olarak adlandırılacaktır. Bilgi sütunu kategorik tip olarak tanımlanır ve şu değeri alır:
      'yalnızca sol'birleştirme anahtarı DataFrame'in yalnızca 'solunda' görünen gözlemler için, oysa,'yalnızca doğru'birleştirme anahtarının yalnızca DataFrame'in 'sağında' göründüğü gözlemler için tanımlanır,'ikisi birden'gözlemin birleştirme anahtarı her ikisinde de bulunursa.
    doğrulamak: dizi, isteğe bağlı
    Eğer belirtilmişse aşağıda verilen birleştirme tipini kontrol eder:
    • 'bire_bir' veya '1:1': Birleştirme anahtarlarının hem sol hem de sağ veri kümelerinde benzersiz olup olmadığını kontrol eder.
    • 'one_to_many' veya '1:m': Birleştirme anahtarlarının yalnızca soldaki veri kümesinde benzersiz olup olmadığını kontrol eder.
    • 'çok_to_one' veya 'm:1': Birleştirme anahtarlarının yalnızca doğru veri kümesinde benzersiz olup olmadığını kontrol eder.
    • 'çok_to_çok' veya 'm:m': Buna izin verilir, ancak kontrollerle sonuçlanmaz.

Örnek1: Bir anahtarda iki DataFrame'i birleştirme

 # import the pandas library import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['John', 'Parker', 'Smith', 'Parker'], 'subject_id':['sub1','sub2','sub4','sub6']}) right = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['William', 'Albert', 'Tony', 'Allen'], 'subject_id':['sub2','sub4','sub3','sub6']}) print (left) print (right) 

Çıktı

 id Name subject_id 0 1 John sub1 1 2 Parker sub2 2 3 Smith sub4 3 4 Parker sub6 id Name subject_id 0 1 William sub2 1 2 Albert sub4 2 3 Tony sub3 3 4 Allen sub6 

Örnek2: İki DataFrame'i birden çok anahtarda birleştirme:

 import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5']}) right = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5']}) print pd.merge(left,right,on='id') 

Çıktı

 id Name_x subject_id_x Name_y subject_id_y 0 1 John sub1 William sub2 1 2 Parker sub2 Albert sub4 2 3 Smith sub4 Tony sub3 3 4 Parker sub6 Allen sub6