Pandas sammanfoga() definieras som processen att sammanföra de två datamängderna till en och justera raderna baserat på de gemensamma attributen eller kolumnerna. Det är en ingångspunkt för alla vanliga databaskopplingsoperationer mellan DataFrame-objekt:
Syntax:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
Parametrar:
- 'one_to_one' eller '1:1': Den kontrollerar om sammanslagningsnycklar är unika i både vänster och höger dataset.
- 'one_to_many' eller '1:m': Den kontrollerar om sammanslagningsnycklar är unika endast i den vänstra datasetet.
- 'many_to_one' eller 'm:1': Den kontrollerar om sammanslagningsnycklar är unika endast i rätt datauppsättning.
- 'många_till_många' eller 'm:m': Det är tillåtet, men resulterar inte i kontroller.
Det är ett objekt som smälter samman med DataFrame.
Typ av sammanslagning som ska utföras.
Det är en kolumn eller indexnivånamn att gå med på. Det måste finnas i både vänster och höger DataFrames. Om på är Ingen och inte sammanfogas på index, så är detta standard till skärningspunkten mellan kolumnerna i båda DataFrames.
kvar på: etikett eller lista, eller arrayliknande
Det är en kolumn eller indexnivånamn från den vänstra DataFrame att använda som nyckel. Det kan vara en array med längden lika med längden på DataFrame.
Det är en kolumn eller indexnivånamn från den högra DataFrame att använda som nycklar. Det kan vara en array med längden lika med längden på DataFrame.
Den använder indexet från den vänstra DataFrame som kopplingsnycklar, om sant. När det gäller MultiIndex (hierarkiskt) bör många nycklar i den andra DataFrame (antingen indexet eller några kolumner) matcha antalet nivåer.
Den använder indexet från den högra DataFrame som kopplingsnyckel. Den har samma användning som left_index.
Om True, sorterar den join-nycklarna i lexikografisk ordning i resultatet DataFrame. Annars beror ordningen på join-nycklarna på join-typen (hur nyckelordet).
Det suffix att tillämpa för att överlappa kolumnnamnen i vänster respektive höger DataFrame. Kolumnerna använder (False, False) värden för att skapa ett undantag vid överlappning.
Om det är sant returneras en kopia av DataFrame.
Annars kan den undvika kopian.
Om det är sant lägger det till en kolumn för att mata ut DataFrame ' _sammanfoga ' med information om källan till varje rad. Om det är en sträng kommer en kolumn med information om källan för varje rad att läggas till i dataframe, och kolumnen kommer att få namnet värdet av en sträng. Informationskolumnen definieras som en kategorisk typ och den tar värdet av:
Om den är specificerad kontrollerar den sammanslagningstypen som anges nedan:
Exempel 1: Slå samman två DataFrames på en nyckel
# 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)
Produktion
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
Exempel 2: Slå samman två DataFrames på flera nycklar:
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')
Produktion
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