Som dataanalytiker vil du ofte møte behovet for å kombinere flere datasett. Du må gjøre dette for å fullføre analysen og komme til en konklusjon for virksomheten/interessentene dine.

Det er ofte utfordrende å representere data når de er lagret i forskjellige tabeller. Under slike omstendigheter beviser joins sin verdi, uavhengig av programmeringsspråket du jobber med.

Python-koblinger er som SQL-koblinger: de kombinerer datasett ved å matche radene deres på en felles indeks.

Lag to datarammer for referanse

For å følge eksemplene i denne veiledningen kan du lage to eksempler på datarammer. Bruk følgende kode for å lage den første DataFrame, som inneholder en ID, fornavn og etternavn.

import pandaer som pd

a = pd. Dataramme({"ID": ["001", "002", "003", "004", "005"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny"],
"Lnavn": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber"]})
skrive ut(en)

For det første trinnet, importer pandaer bibliotek. Du kan da bruke en variabel, en, for å lagre resultatet fra DataFrame-konstruktøren. Send konstruktøren en ordbok som inneholder de nødvendige verdiene.

Vis til slutt innholdet i DataFrame-verdien med utskriftsfunksjonen for å sjekke at alt ser ut som du forventer.

På samme måte kan du opprette en annen DataFrame, b, som inneholder en ID og lønnsverdier.

b = pd. Dataramme({"ID": ["001", "002", "003", "004", "005"],
"Lønn": [100000, 700000, 80000, 904750, 604772]})

skrive ut(b)

Du kan sjekke utgangen i en konsoll eller en IDE. Den skal bekrefte innholdet i DataFrames:

Hvordan er sammenføyninger forskjellig fra sammenslåingsfunksjonen i Python?

Panda-biblioteket er et av hovedbibliotekene du kan bruke til å manipulere DataFrames. Siden DataFrames inneholder flere datasett, er forskjellige funksjoner tilgjengelige i Python for å bli med dem.

Python tilbyr sammenføynings- og sammenslåingsfunksjonene, blant mange andre, som du kan bruke til å kombinere DataFrames. Det er en sterk forskjell mellom disse to funksjonene, som du må huske på før du bruker begge.

Sammenføyningsfunksjonen kobler sammen to DataFrames basert på deres indeksverdier. De flettefunksjonen kombinerer DataFrames basert på indeksverdiene og kolonnene.

Hva trenger du å vite om sammenføyninger i Python?

Før du diskuterer hvilke typer sammenføyninger som er tilgjengelige, her er noen viktige ting å merke seg:

  • SQL-koblinger er en av de mest grunnleggende funksjonene og er ganske like Pythons sammenføyninger.
  • For å bli med i DataFrames, kan du bruke pandaer. DataFrame.join() metode.
  • Standardsammenføyningen utfører en venstresammenføyning, mens flettefunksjonen utfører en indre sammenføyning.

Standardsyntaksen for en Python-kobling er som følger:

DataFrame.join (annet, på=Ingen, hvordan='venstre/høyre/indre/ytre', lsuffiks='', rsuffiks='',
sortere=Falsk)

Påkall sammenføyningsmetoden på den første DataFrame og send den andre DataFrame som den første parameteren, annen. De resterende argumentene er:

  • , som gir navn til en indeks å bli med på, hvis det er mer enn én.
  • hvordan, som definerer sammenføyningstypen, inkludert indre, ytre, venstre og høyre.
  • lsuffiks, som definerer venstre suffiksstreng for kolonnenavnet ditt.
  • rsuffiks, som definerer høyre suffiksstreng for kolonnenavnet ditt.
  • sortere, som er en boolsk verdi som indikerer om den resulterende DataFrame skal sorteres.

Lær å bruke de forskjellige typene sammenføyninger i Python

Python har noen få bli med alternativer, som du kan trene, avhengig av behovet for timen. Her er sammenføyningstypene:

1. Venstre Bli med

Den venstre sammenføyningen holder verdiene til den første DataFrame intakt mens den henter inn de samsvarende verdiene fra den andre. For eksempel hvis du ønsker å hente inn samsvarsverdiene fra b, kan du definere det som følger:

c = a.join (b, hvordan="venstre", lsuffiks = "_venstre", rsuffiks = "_Ikke sant", sorter = Sant)
skrive ut(c)

Når spørringen kjøres, inneholder utdataene følgende kolonnereferanser:

  • ID_venstre
  • Fname
  • Lnavn
  • ID_right
  • Lønn

Denne sammenføyningen trekker de tre første kolonnene fra den første DataFrame, og de to siste kolonnene fra den andre DataFrame. Den har brukt lsuffiks og rsuffiks verdier for å gi nytt navn til ID-kolonnene fra begge datasettene, og sikre at de resulterende feltnavnene er unike.

Utgangen er som følger:

2. Høyre Bli med

Den høyre sammenføyningen holder verdiene til den andre DataFrame intakte, mens de henter inn samsvarende verdier fra den første tabellen. For eksempel hvis du ønsker å hente inn samsvarsverdiene fra en, kan du definere det som følger:

c = b.join (a, hvordan="Ikke sant", lsuffiks = "_Ikke sant", rsuffiks = "_venstre", sorter = Sant)
skrive ut(c)

Utgangen er som følger:

Hvis du ser gjennom koden, er det noen tydelige endringer. Resultatet inkluderer for eksempel kolonnene til den andre DataFrame før de fra den første DataFrame.

Du bør bruke en verdi på Ikke sant for hvordan argument for å spesifisere en rettighet. Legg også merke til hvordan du kan bytte lsuffiks og rsuffiks verdier for å gjenspeile naturen til den rette sammenføyningen.

I dine vanlige sammenføyninger kan det hende du bruker venstre, indre og ytre sammenføyninger oftere, sammenlignet med høyre sammenføyninger. Imidlertid avhenger bruken helt av dine datakrav.

3. Inner Join

En indre sammenføyning leverer de samsvarende oppføringene fra begge DataFrames. Siden sammenføyninger bruker indekstallene for å matche rader, returnerer en indre sammenføyning bare rader som samsvarer. For denne illustrasjonen, la oss bruke følgende to DataFrames:

a = pd. Dataramme({"ID": ["001", "002", "003", "004", "005", "006", "007"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny", "Daryl", "Cathy"],
"Lnavn": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber", "Hooper", "Håp"]})
b = pd. Dataramme({"ID": ["001", "002", "003", "004", "005"],
"Lønn": [100000, 700000, 80000, 904750, 604772]})

skrive ut(en)
skrive ut(b)

Utgangen er som følger:

Du kan bruke en indre sammenføyning, som følger:

c = a.join (b, lsuffiks="_venstre", rsuffiks="_Ikke sant", hvordan='indre')
skrive ut(c)

Den resulterende utgangen inneholder bare rader som eksisterer i begge input DataFrames:

4. Ytre skjøt

En ytre sammenføyning returnerer alle verdiene fra begge DataFrames. For rader uten samsvarende verdier, produserer den en nullverdi på de individuelle cellene.

Ved å bruke samme DataFrame som ovenfor, her er koden for ytre sammenføyning:

c = a.join (b, lsuffiks="_venstre", rsuffiks="_Ikke sant", hvordan='ytre')
skrive ut(c)

Bruke Joins i Python

Sammenføyninger, i likhet med deres motpartsfunksjoner, flette og sammenflette, tilbyr mye mer enn en enkel sammenføyningsfunksjonalitet. Gitt dens serie av alternativer og funksjoner, kan du velge alternativene som oppfyller dine krav.

Du kan sortere de resulterende datasettene relativt enkelt, med eller uten join-funksjonen, med de fleksible alternativene som Python tilbyr.