Pandaer fusionere() er defineret som processen med at bringe de to datasæt sammen til ét og justere rækkerne baseret på de fælles attributter eller kolonner. Det er et indgangspunkt for alle standard databasesammenføjningsoperationer mellem DataFrame-objekter:
Syntaks:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
Parametre:
- 'one_to_one' eller '1:1': Den kontrollerer, om flettenøgler er unikke i både venstre og højre datasæt.
- 'one_to_many' eller '1:m': Den kontrollerer, om flettenøgler kun er unikke i det venstre datasæt.
- 'mange_til_en' eller 'm:1': Den kontrollerer, om flettenøgler kun er unikke i det rigtige datasæt.
- 'mange_til_mange' eller 'm:m': Det er tilladt, men resulterer ikke i kontrol.
Det er et objekt, der smelter sammen med DataFrame.
Type fletning, der skal udføres.
Det er et kolonne- eller indeksniveau navne at deltage på. Det skal findes i både venstre og højre DataFrames. Hvis On er Ingen og ikke flettes på indekser, så er dette standard til skæringspunktet mellem kolonnerne i begge DataFrames.
efterladt på: etiket eller liste, eller array-lignende
Det er et kolonne- eller indeksniveaunavne fra venstre DataFrame, der skal bruges som nøgle. Det kan være et array med en længde svarende til længden af DataFrame.
Det er et kolonne- eller indeksniveaunavne fra den højre DataFrame, der skal bruges som nøgler. Det kan være et array med en længde svarende til længden af DataFrame.
Den bruger indekset fra venstre DataFrame som joinnøgle(r), hvis sandt. I tilfælde af MultiIndex (hierarkisk), skal mange nøgler i den anden DataFrame (enten indekset eller nogle kolonner) matche antallet af niveauer.
Den bruger indekset fra højre DataFrame som joinnøgle. Det har samme brug som left_index.
Hvis True, sorterer den joinnøglerne i leksikografisk rækkefølge i resultatet DataFrame. Ellers afhænger rækkefølgen af joinnøglerne af jointypen (hvordan nøgleordet).
Det suffikser at anvende for at overlappe kolonnenavnene i henholdsvis venstre og højre DataFrame. Kolonnerne bruger (False, False) værdier til at rejse en undtagelse ved overlapning.
Hvis det er sandt, returnerer det en kopi af DataFrame.
Ellers kan den undgå kopien.
Hvis det er sandt, tilføjer det en kolonne til output DataFrame ' _fusionere ' med oplysninger om kilden til hver række. Hvis det er en streng, vil en kolonne med information om kilden til hver række blive tilføjet til output DataFrame, og kolonnen vil blive navngivet værdien af en streng. Informationskolonnen er defineret som en kategorisk type, og den har værdi af:
Hvis det er angivet, tjekker det flettetypen, der er angivet nedenfor:
Eksempel 1: Flet to DataFrames på en nøgle
# 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
Eksempel 2: Flet to DataFrames på flere nøgler:
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