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>