Panda's samenvoegen() wordt gedefinieerd als het proces van het samenbrengen van de twee datasets tot één en het uitlijnen van de rijen op basis van de gemeenschappelijke attributen of kolommen. Het is een toegangspunt voor alle standaard database-join-bewerkingen tussen DataFrame-objecten:
Syntaxis:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
Parameters:
- 'one_to_one' of '1:1': Het controleert of samenvoegsleutels uniek zijn in zowel de linker als de rechter dataset.
- 'one_to_many' of '1:m': Het controleert of samenvoegsleutels uniek zijn in alleen de linker dataset.
- 'many_to_one' of 'm:1': Het controleert of samenvoegsleutels uniek zijn in alleen de juiste dataset.
- 'many_to_many' of 'm:m': Het is toegestaan, maar leidt niet tot controles.
Het is een object dat samenvoegt met het DataFrame.
Type samenvoeging dat moet worden uitgevoerd.
Het zijn namen op kolom- of indexniveau waaraan u kunt deelnemen. Het moet worden gevonden in zowel de linker als de rechter DataFrames. Als Aan Geen is en er geen indexen worden samengevoegd, wordt dit standaard ingesteld op het snijpunt van de kolommen in beide DataFrames.
links_aan: label of lijst, of array-achtig
Het zijn kolom- of indexniveaunamen uit het linker DataFrame die als sleutel moeten worden gebruikt. Het kan een array zijn met een lengte die gelijk is aan de lengte van het DataFrame.
Het zijn kolom- of indexniveaunamen uit het rechter DataFrame die als sleutels kunnen worden gebruikt. Het kan een array zijn met een lengte die gelijk is aan de lengte van het DataFrame.
Het gebruikt de index van het linker DataFrame als de join-sleutel(s), indien waar. In het geval van MultiIndex (hiërarchisch) moeten veel sleutels in het andere DataFrame (de index of sommige kolommen) overeenkomen met het aantal niveaus.
Het gebruikt de index van het rechter DataFrame als de join-sleutel. Het heeft hetzelfde gebruik als de left_index.
Indien True, sorteert het de join-sleutels in lexicografische volgorde in het resultaat DataFrame. Anders hangt de volgorde van de join-sleutels af van het join-type (hoe trefwoord).
Er moeten achtervoegsels worden toegepast om de kolomnamen in respectievelijk het linker en rechter DataFrame te overlappen. De kolommen gebruiken waarden (False, False) om een uitzondering op overlapping te genereren.
Indien True, retourneert het een kopie van het DataFrame.
Anders kan het de kopie vermijden.
Indien waar, wordt er een kolom toegevoegd aan de uitvoer van DataFrame ' _samenvoegen ' met informatie over de bron van elke rij. Als het een tekenreeks is, wordt een kolom met informatie over de bron van elke rij toegevoegd aan de uitvoer van DataFrame, en krijgt de kolom de naam waarde van een tekenreeks. De informatiekolom wordt gedefinieerd als een categorisch type en heeft de waarde van:
Als dit is opgegeven, wordt het samenvoegingstype gecontroleerd dat hieronder wordt vermeld:
Voorbeeld1: Voeg twee DataFrames samen op een sleutel
# 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)
Uitvoer
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
Voorbeeld 2: voeg twee DataFrames op meerdere sleutels samen:
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')
Uitvoer
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