logo

Пандас ДатаФраме.мерге()

Панде споји() се дефинише као процес спајања два скупа података у један и поравнања редова на основу заједничких атрибута или колона. То је улазна тачка за све стандардне операције спајања базе података између ДатаФраме објеката:

Синтакса:

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

Параметри:

    јел тако: ДатаФраме или именована серија
    То је објекат који се спаја са ДатаФраме-ом.како: {'лево', 'десно', 'спољашњи', 'унутрашњи'}, подразумевано 'унутрашњи'
    Врста спајања које треба извршити.
      лево:Користи само кључеве из левог оквира, слично СКЛ левом спољашњем споју; сачувати кључни ред.јел тако:Користи само кључеве из десног оквира, слично СКЛ десном спољашњем споју; сачувати кључни ред.спољашњи:Користио је унију кључева из оба оквира, слично СКЛ пуном спољашњем споју; лексикографски сортирај кључеве.унутрашњи:Користи пресек кључева из оба оквира, слично СКЛ унутрашњем споју; сачувати редослед левих тастера.
    на: етикета или листа
    То су називи нивоа колоне или индекса за придруживање. Мора се наћи у левом и десном ДатаФраме-у. Ако је укључено Ништа и не спаја се на индексе, онда је ово подразумевано на пресеку колона у оба оквира података.
    отишао: ознака или листа, или налик низу
    То су називи нивоа колоне или индекса из левог оквира података који се користе као кључ. То може бити низ чија је дужина једнака дужини ДатаФраме-а.управо: ознака или листа, или налик низу
    То су називи нивоа колоне или индекса из десног оквира података који се користе као кључеви. То може бити низ чија је дужина једнака дужини ДатаФраме-а.леви_индекс: боол, подразумевано Фалсе
    Користи индекс из левог оквира података као кључ(ове) за спајање, ако је тачно. У случају МултиИндек-а (хијерархијски), многи кључеви у другом ДатаФраме-у (било индекс или неке колоне) треба да одговарају броју нивоа.десни_индекс : боол, подразумевано Фалсе
    Користи индекс из десног оквира података као спојни кључ. Има исту употребу као леви_индекс.врста: боол, подразумевано Фалсе
    Ако је тачно, сортира спојене кључеве по лексикографском редоследу у резултатском ДатаФраме-у. Иначе, редослед спојних кључева зависи од типа спајања (како кључна реч).суфикси: тупле оф тхе (стр, стр), дефаулт ('_к', '_и')
    Суфикси за примену за преклапање имена колона у левом и десном ДатаФраме-у, респективно. Колоне користе (Фалсе, Фалсе) вредности за подизање изузетка при преклапању.копија: боол, подразумевано Тачно
    Ако је тачно, враћа копију ДатаФраме-а.
    У супротном, може избећи копију.индикатор: боол или стр, подразумевано Фалсе
    Ако је тачно, додаје колону за излаз ДатаФраме ' _мерге ' са информацијама о извору сваког реда. Ако је то стринг, колона са информацијама о извору сваког реда биће додата излазном ДатаФраме-у, а колона ће бити именована као вредност стринга. Колона са информацијама је дефинисана као категорички тип и има вредност:
      'лефт_онли'за запажања чији се кључ спајања појављује само у 'левој' од оквира података, док,'само_десно'је дефинисан за посматрања у којима се кључ спајања појављује само у 'десно' од ДатаФраме-а,'и једно и друго'ако се кључ за спајање посматрања налази у оба.
    потврдити: стр, опционо
    Ако је наведено, проверава тип спајања који је дат у наставку:
    • 'оне_то_оне' или '1:1': Проверава да ли су кључеви за спајање јединствени у левом и десном скупу података.
    • 'оне_то_мани' или '1:м': Проверава да ли су кључеви за спајање јединствени само у левом скупу података.
    • 'мани_то_оне' или 'м:1': Проверава да ли су кључеви за спајање јединствени само у правом скупу података.
    • 'мани_то_мани' или 'м:м': Дозвољено је, али не доводи до провера.

Пример 1: Спојите два оквира података на кључу

 # 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: Спојите два оквира података на више кључева:

 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