logo

Pandas DataFrame.merge()

панди сливане () се определя като процес на обединяване на двата набора от данни в един и подравняване на редовете въз основа на общите атрибути или колони. Това е входна точка за всички стандартни операции за свързване на бази данни между DataFrame обекти:

Синтаксис:

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

Параметри:

    дясно: DataFrame или именувана серия
    Това е обект, който се слива с DataFrame.как: {'left', 'right', 'outer', 'inner'}, по подразбиране 'inner'
    Тип обединяване, което трябва да се извърши.
      наляво:Той използва само ключове от лявата рамка, подобно на SQL ляво външно съединение; запазване на реда на ключовете.дясно:Той използва само ключове от дясната рамка, подобно на SQL дясно външно съединение; запазване на реда на ключовете.външен:Той използва обединението на ключове от двете рамки, подобно на SQL пълно външно свързване; сортирайте ключовете лексикографски.атрешна:Той използва пресичането на ключове от двата кадъра, подобно на SQL вътрешно съединение; запази реда на левите клавиши.
    На: етикет или списък
    Това са имена на ниво колона или индекс, към които да се присъедините. Трябва да се намери както в левия, така и в десния DataFrames. Ако on е None и не се сливат индекси, тогава това по подразбиране е пресечната точка на колоните в двете DataFrames.
    оставен: етикет или списък, или подобен на масив
    Това е име на ниво колона или индекс от лявата DataFrame, което да се използва като ключ. Може да бъде масив с дължина, равна на дължината на DataFrame.прав_на: етикет или списък, или подобен на масив
    Това са имена на ниво колона или индекс от дясната DataFrame, които да се използват като ключове. Може да бъде масив с дължина, равна на дължината на DataFrame.ляв_индекс: bool, по подразбиране False
    Той използва индекса от лявата DataFrame като ключ(ове) за присъединяване, ако е вярно. В случай на MultiIndex (йерархичен), много ключове в другата DataFrame (или индексът, или някои колони) трябва да съответстват на броя на нивата.десен_индекс: bool, по подразбиране False
    Той използва индекса от дясната DataFrame като ключ за присъединяване. Има същата употреба като left_index.вид: bool, по подразбиране False
    Ако е True, той сортира ключовете за свързване в лексикографски ред в резултата DataFrame. В противен случай редът на ключовете за присъединяване зависи от типа присъединяване (ключова дума how).суфикси: кортеж от (str, str), по подразбиране ('_x', '_y')
    Това е наставка за прилагане за припокриване на имената на колоните съответно в лявата и дясната DataFrame. Колоните използват стойности (False, False), за да предизвикат изключение при припокриване.копие: bool, по подразбиране True
    Ако е True, връща копие на DataFrame.
    В противен случай може да избегне копието.индикатор: bool или str, по подразбиране False
    Ако е True, добавя колона за извеждане на DataFrame ' _сливане ' с информация за източника на всеки ред. Ако това е низ, колона с информация за източника на всеки ред ще бъде добавена към изходния DataFrame и колоната ще бъде наречена стойност на низ. Информационната колона е дефинирана като категоричен тип и приема стойност от:
      'left_only'за наблюденията, чийто ключ за сливане се появява само в „ляво“ на DataFrame, докато,'right_only'се дефинира за наблюдения, при които ключът за сливане се появява само в „дясно“ на DataFrame,'и двете'ако ключът за сливане на наблюдението е намерен и в двата.
    потвърди: str, по избор
    Ако е посочен, той проверява типа сливане, който е даден по-долу:
    • „one_to_one“ или „1:1“: Проверява дали ключовете за сливане са уникални както в левия, така и в десния набор от данни.
    • „one_to_many“ или „1:m“: Проверява дали ключовете за сливане са уникални само в левия набор от данни.
    • 'many_to_one' или 'm:1': Проверява дали ключовете за сливане са уникални само в правилния набор от данни.
    • 'many_to_many' или 'm:m': Позволено е, но не води до проверки.

Пример1: Обединяване на два DataFrames на ключ

 # 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) 

Изход

 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 

Пример2: Обединете две DataFrames на множество ключове:

 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') 

Изход

 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