logo

Hvordan kombinere to datarammer i Python – Pandas?

I mange virkelige situasjoner kommer dataene vi ønsker å bruke i flere filer. Vi har ofte behov for å kombinere disse filene til en enkelt DataFrame for å analysere dataene. Pandaer gir slike fasiliteter for enkelt å kombinere Series eller DataFrame med ulike typer settlogikk for indeksene og relasjonsalgebrafunksjonalitet i tilfelle av sammenføynings-/sammenslåingsoperasjoner. Vi kan også kombinere data fra flere tabeller i Pandaer . I tillegg tilbyr pandaer også verktøy for å sammenligne to serier eller DataFrame og oppsummere forskjellene deres.

Sammenkobling av datarammer i pandaer

Concat()-funksjonen i Pandas brukes til å legge til enten kolonner eller rader fra en DataFrame til en annen. De Pandas concat() funksjon utfører alle de tunge løftene med å utføre sammenkoblingsoperasjoner langs en akse mens du utfører valgfri settlogikk (forening eller skjæring) av indeksene (hvis noen) på de andre aksene.



Python3








import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> frames>=> [df1, df2]> result>=> pd.concat(frames)> display(result)>

>

>

Produksjon:

    id Name  0 A01 ABC 1 A02 PQR 2 A03 DEF 3 A04 GHI 0 B05 XYZ 1 B06 TUV 2 B07 MNO 3 B08 JKL>

Bli med i DataFrames i Pandas

Da vi satte sammen datarammene våre, la vi dem ganske enkelt til hverandre, dvs. stablet dem enten vertikalt eller side ved side. En annen måte å kombinere DataFrames på er å bruke kolonner i hvert datasett som inneholder felles verdier (en felles unik id). Å kombinere DataFrames ved hjelp av et felles felt kalles sammenføyning. Kolonnene som inneholder de vanlige verdiene kalles joinnøkkel(er). Å slå sammen DataFrames på denne måten er ofte nyttig når en DataFrame er en oppslagstabell som inneholder tilleggsdata som vi ønsker å inkludere i den andre.

Merk: Denne prosessen med å slå sammen tabeller ligner på det vi gjør med tabeller i en SQL database .

Når du limer sammen flere DataFrames, har du valget mellom hvordan du skal håndtere de andre aksene (annet enn den som er sammenkoblet). Dette kan gjøres på følgende to måter:

  • Ta foreningen av dem alle, join=’outer’. Dette er standardalternativet da det resulterer i null tap av informasjon.
  • Ta krysset, join=’indre’.

Eksempel: indre sammenføyning av to datarammer ved bruk av concat()-metoden

I dette eksemplet, to pandaer DataFrames,df1>ogdf3>, er sammenkoblet ved hjelp av en indre sammenføyning basert på deres indekser. Den resulterende DataFrame, kalt 'resultat', inkluderer bare rader der 'id'-kolonnen inndf1>samsvarer med «By»-kolonnen idf3>.

Python3


mvc for java



import> pandas as pd> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> df3>=> pd.DataFrame({>'City'>: [>'MUMBAI'>,>'PUNE'>,>'MUMBAI'>,>'DELHI'>],> >'Age'>: [>'12'>,>'13'>,>'14'>,>'12'>]})> # the default behaviour is join='outer'> # inner join> result>=> pd.concat([df1, df3], axis>=>1>, join>=>'inner'>)> display(result)>

>

>

Produksjon:

  id Name City Age  0 A01 ABC MUMBAI 12 1 A02 PQR PUNE 13 2 A03 DEF MUMBAI 14 3 A04 GHI DELHI 12>

Sammenslåing ved hjelp av append() funksjon

En nyttig snarvei til concat() er append()-forekomstmetoden på Series og DataFrame. Denne metoden kan brukes til å kombinere data fra flere tabeller i Pandas. Disse metodene gikk faktisk før concat.

Eksempel 1: Kombinere to DataFrame ved å bruke append()-metoden

I dette eksemplet, to Pandas DataFrames,df1>ogdf2>, kombineres ved hjelp avappend>metode, noe som resulterer i en ny DataFrame kalt 'resultat'. Den resulterende DataFrame inneholder alle rader fra beggedf1>ogdf2>, med en kontinuerlig indeks.

fang og prøv java

Python3




import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> # append method> result>=> df1.append(df2)> display(result)>

>

>

Produksjon:

   id Name  0 A01 ABC 1 A02 PQR 2 A03 DEF 3 A04 GHI 0 B05 XYZ 1 B06 TUV 2 B07 MNO 3 B08 JKL>

Merk: append() kan ta flere objekter for å sette sammen.

Eksempel 2: Kombiner data fra flere tabeller i pandaer

I dette eksemplet, tre Pandas DataFrames,df1>,df2>, ogdf3>, legges sammen ved hjelp avappend>metode. Den resulterende DataFrame kalt 'resultat' kombinerer alle rader fra de tre DataFrames, og opprettholder en kontinuerlig indeks.

Python3




import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> df3>=> pd.DataFrame({>'City'>: [>'MUMBAI'>,>'PUNE'>,>'MUMBAI'>,>'DELHI'>],> >'Age'>: [>'12'>,>'13'>,>'14'>,>'12'>]})> # appending multiple DataFrame> result>=> df1.append([df2, df3])> display(result)>

>

>

Produksjon:

   id Name City Age  0 A01 ABC NaN NaN 1 A02 PQR NaN NaN 2 A03 DEF NaN NaN 3 A04 GHI NaN NaN 0 B05 XYZ NaN NaN 1 B06 TUV NaN NaN 2 B07 MNO NaN NaN 3 B08 JKL NaN NaN 0 NaN NaN MUMBAI 12 1 NaN NaN PUNE 13 2 NaN NaN MUMBAI 14 3 NaN NaN DELHI 12>