logo

Hvordan kombineres to dataframes i Python – Pandas?

I mange virkelige situationer kommer de data, vi ønsker at bruge, i flere filer. Vi har ofte et behov for at kombinere disse filer i en enkelt DataFrame for at analysere dataene. Pandaer giver sådanne faciliteter til let at kombinere Series eller DataFrame med forskellige slags set-logik for indekserne og relationel algebra-funktionalitet i tilfælde af join/merge-type operationer. Vi kan også kombinere data fra flere tabeller i Pandaer . Derudover leverer pandaer også hjælpeprogrammer til at sammenligne to serier eller DataFrame og opsummere deres forskelle.

Sammenkædning af datarammer i pandaer

Concat()-funktionen i Pandas bruges til at tilføje enten kolonner eller rækker fra en DataFrame til en anden. Det Pandas concat() funktion udfører alle de tunge løft ved at udføre sammenkædningsoperationer langs en akse, mens der udføres valgfri sætlogik (forening eller skæring) af indekserne (hvis nogen) på de andre akser.



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)>

>

>

Produktion:

    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>

Deltager i DataFrames i Pandas

Da vi sammenkædede vores DataFrames, føjede vi dem simpelthen til hinanden, dvs. stablede dem enten lodret eller side om side. En anden måde at kombinere DataFrames på er at bruge kolonner i hvert datasæt, der indeholder fælles værdier (et fælles unikt id). At kombinere DataFrames ved hjælp af et fælles felt kaldes joining. De kolonner, der indeholder de fælles værdier, kaldes joinnøgle(r). At forbinde DataFrames på denne måde er ofte nyttigt, når den ene DataFrame er en opslagstabel, der indeholder yderligere data, som vi ønsker at inkludere i den anden.

Bemærk: Denne proces med at samle tabeller svarer til, hvad vi gør med tabeller i en SQL database .

Når du limer flere DataFrames sammen, har du et valg om, hvordan du håndterer de andre akser (bortset fra den, der sammenkædes). Dette kan gøres på følgende to måder:

  • Tag foreningen af ​​dem alle, join=’ydre’. Dette er standardindstillingen, da det resulterer i nul informationstab.
  • Tag krydset, join=’indre’.

Eksempel: Indre sammenføjning af to datarammer ved hjælp af concat()-metoden

I dette eksempel, to pandaer DataFrames,df1>ogdf3>, er sammenkædet ved hjælp af en indre joinforbindelse baseret på deres indekser. Den resulterende DataFrame, kaldet 'resultat', inkluderer kun rækker, hvor 'id'-kolonnen er indedf1>matcher kolonnen 'By' idf3>.

Python3


smide kast i 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)>

>

>

Produktion:

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

Sammenkædning ved hjælp af append() Funktion

En nyttig genvej til concat() er append() instansmetoden på Series og DataFrame. Denne metode kan bruges til at kombinere data fra flere tabeller i Pandas. Disse metoder gik faktisk før concat.

Eksempel 1: Kombination af to DataFrame ved hjælp af append()-metoden

I dette eksempel, to Pandas DataFrames,df1>ogdf2>, kombineres ved hjælp afappend>metode, hvilket resulterer i en ny DataFrame med navnet 'result'. Den resulterende DataFrame indeholder alle rækker fra beggedf1>ogdf2>, med et kontinuerligt indeks.

strengformater

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)>

>

>

Produktion:

   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>

Bemærk: append() kan tage flere objekter for at sammenkæde.

Eksempel 2: Kombiner data fra flere tabeller i pandaer

I dette eksempel, tre Pandas DataFrames,df1>,df2>, ogdf3>, føjes sammen ved hjælp afappend>metode. Den resulterende DataFrame med navnet 'result' kombinerer alle rækker fra de tre DataFrames og opretholder et kontinuerligt 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)>

>

>

Produktion:

   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>