Pandas kombinerer Dataframes

Pandas kombinerer Dataframes
Pandaer gir et bredt spekter av verktøy og funksjoner for datamanipulering inkludert sammenslåing av dataframmer. Sammenslåing av DataFrames lar oss både lage en dataaframe ved å endre den originale datakilden og generere en ny DataFrame uten å endre datakilden. Uttrykket "bli med" refererer til å bli med to dataaframes sammen for å lage en ny DataFrame. Så hvis du er kjent med SQL eller andre tabulære data, vet du sikkert hva det innebærer. Det kan være utfordrende å forstå sammenføyningstypene på riktig måte hvis du er en nybegynner (ytre, indre, venstre, høyre). Vi vil diskutere noen typer sammenføyning med eksempler i denne opplæringen. Concat () og Merge () -funksjonene vil være vårt hovedfokus i denne opplæringen. For å gi deg så mange nyttige alternativer som vi kan, vil vi snakke om andre sammenslåingsteknikker.

Hvordan kombinere Dataframes i pandaer

Flere metoder kan brukes til å kombinere to eller flere dataframmer. Vi vil diskutere noen av dem i følgende eksempler.

Eksempel 1: Kombinere to Pandas dataframes ved hjelp av fusjonsfunksjonen ()
Vi starter dette eksemplet med å lage to enkle dataframmer og navngi dem “DF1” og “DF2”. For å lage DataFrames, må vi først importere Pandas -modulen for å bruke funksjonalitetene. PD.DataFrame brukes til å lage våre DataFrames.

For å lage våre Dataframes, passerer vi ordbøkene inne i PD.DataFrame () og tilordne DataFrames til "DF1" og "DF2" -variablene.

I vår DataFrame “DF1” har vi to kolonner - “Person” og “ID” - som lagrer henholdsvis navnene på henholdsvis personer og ID -tall for disse personene.

I vår andre DataFrame “DF2” er det også to kolonner - “ID” og “Lønn” - som lagrer dummy -ID -numrene og lønningene til enkeltpersoner. La oss bruke fusjonsfunksjonen () for å bli med i disse dataframene. Ta en rask titt på alle alternativene som denne metoden kan godta før du fortsetter:

Syntaks

Bortsett fra parametrene til høyre og venstre, har flertallet av disse parametrene standardverdier. Dataframes navnene vi kombinerer er inneholdt i disse to parametrene. En ny DataFrame returneres av selve funksjonen, som vi lagrer i "Merge_df" -variabelen.

Fordi kolonne -IDen i både Dataframes “DF1” og “DF2” har samme etikett, kombinerer MERGE () -metoden automatisk de to DataFrames basert på den tasten. Vi spesifiserer parametrene venstre_on = ”Navn på venstre kolonne” og høyre_on = ”Navn på høyre kolonne” for å spesifisere tastene eksplisitt for våre DataFrames hvis det ikke er noen kolonne med samme kolonneavn i begge DataFrames. La oss skrive ut vår nye kombinerte DataFrame med print () -funksjonen.

Som du kan se, inneholder sammenslått DF bare 4 rader mens DF2s original inneholder 5 rader. Dette er fordi en ny DataFrame opprettes ved å krysse høyre og venstre Dataframes når "How" -parameters standardverdi er satt til "indre" inne i PD.Fusjon () -funksjonen. Derfor vil den kombinerte DataFrame ikke inneholde en ID som mangler et av bordene.

Hvis høyre og venstre rad ble byttet over, er dette fortsatt sant:

Utgangen er den samme.

Men ID “005” er fremdeles ikke en del av de kombinerte Dataframes. Selv om ingen av radene krysser hverandre, kan det være situasjoner når vi ønsker å inkludere dataene fra begge DataFrames i den sammenslåtte DataFrame som inneholder alle radene.

Vi kan sette "hvordan" -parameteren til "riktig" inne i fusjonsfunksjonen ().

Funksjonen inkluderer hvert element i riktig DataFrame “DF2” og venstre DataFrame “DF1” ved hjelp av en høyre sammenføyning. Hvis radene manglet fra DataFrame “DF1”, bruker vi How = "Left".

Eksempel 2: Kombinere to Pandas dataframes ved hjelp av join () -funksjonen
Join () er en funksjon av selve dataframmen, i motsetning til fusjon (), som er en funksjon av Pandas -forekomsten. Det kan derfor brukes på DataFrame som en statisk metode. La oss først lage to prøve -dataframes DF1 og DF2, slik at vi kan kombinere eller slå dem sammen ved å bruke Join () -funksjonen.

For å se innholdet i begge Dataframes, la oss skrive dem ut en etter en.

Skriv ut den andre DataFrame “DF2”.

Siden vi opprettet DataFrames, kan du se på syntaksen til Join () -funksjonen:

Syntaks

Vår venstre DataFrame “DF1” er den vi kaller Join () -funksjonen. Vår rette dataaframe “DF2” er den i "andre" parameteren inne i Join () -funksjonen. "Hvordan" -parameteren godtar en av håndteringsparametrene (venstre, høyre, ytre eller indre) mens "IS" -parameteren som standard er satt til venstre. "ON" -parameteren kan godta ett eller flere argumenter (liste over nøkler) for å spesifisere den samsvarende tasten.

Nå blir vi med DF2 med DF1.

Som det kan sees, har vi DataFrames “DF1” og “DF2” ved hjelp av Join () -funksjonen. Utgangen fra Join () -funksjonen kan endres ved å bruke de forskjellige parametrene og spesifisere de forskjellige argumentene for dem.

Eksempel 3: Kombinere to pandas dataframes ved å bruke concat () -funksjonen
Sammenlignet med Merge () og Join () er sammenkobling litt mer fleksibel fordi det gjør oss i stand til å slå sammen dataframene enten horisontalt (kolonnemessig) eller vertikalt (radmessig). Den største ulempen er at dataene blir eliminert eller kastet hvis kolonnetikettene ikke stemmer overens eller ikke eksisterer i begge DataFrames. Funksjonens syntaks er som følger:

Syntaks

Parametere

  • objs: Listen over DataFrame -objekter ([DataFrame1, DataFrame2,…]) som vil bli sammenkoblet.
  • akser: Den bestemmer rekkefølgen på sammenkobling, kolonnemessig hvis det er spesifisert til 1 og radmessig hvis den er spesifisert til 0.
  • bli med: Det kan spesifiseres som "ytre" for union og "indre" for krysset.
  • ignorere_index: Det kan resultere i duplikatindeksverdier fordi "Ignorer Index" er som standard falsk, noe som holder indeksverdiene de originale DataFrames. Hvis det er sant, tildeler den indeksen i sekvensiell rekkefølge mens du ignorerer de opprinnelige verdiene.
  • nøkler: Vi kan opprette en hierarkisk indeks ved hjelp av nøkler. Tenk på det som et ekstra nivå av den ytre venstre indeksen som hjelper til med å identifisere indekser når du dupliserer. La oss nå lage vår dataaframe som har de samme kolonnetikettene og datatypene.

La oss skrive ut DataFrames “DF1” og “DF2” for å se innholdet deres.

Vi har to kolonner i “DF1”. Nå må “DF2” ha to kolonner med de samme navnene.

DataFrame “DF2” består også av “Navn” og “Alder” -kolonner som har de samme datatypene som “DF1” DataFrames kolonner.

Nå passerer vi DF1 og DF2 i OBJS-parameteren som en liste ([DF1, DF2]) for å kombinere dem radmessig. Og så tildeler vi den nye sammenslåtte DataFrame til den "sammenslåtte" variabelen.

Som det kan sees, blir dataene fra "DF2" radmessig slått sammen med "DF1". Legg imidlertid merke til indeksene på venstre side av hver rad. Tallene 0, 1 og 2 fortsetter å gjenta. Vi setter Ignore_Index -argumentet for å oppnå de distinkte indeksverdiene.

Akseverdien må endres fra standardverdien på 0 til 1 for å kombinere “DF1” og “DF2” kolonne-messig.

Du vil observere at det skiller seg fra fusjon () som samsvarer med to dataframmer på en nøkkel.

Det er også andre metoder i pandaer som vedlegg () og combine_first () og oppdatering () for å kombinere to dataframmer.

Konklusjon

I denne opplæringen har vi sett at å kombinere DataFrames lar oss både lage en dataaframe ved å endre den originale datakilden og generere en ny DataFrame uten å endre datakilden. Vi har sett syntaksen til funksjoner som brukes til å slå sammen dataframene. Vi prøvde å lære deg hvordan du kan kombinere to pandas dataframes ved hjelp av join (), fusjon () og concat () funksjoner. Nå kan du kanskje kombinere DataFrame () og tilordne DataFrame selv ved å bruke disse funksjonene.