logo

Kako združiti dva podatkovna okvira v Python – Pandas?

V mnogih situacijah iz resničnega življenja so podatki, ki jih želimo uporabiti, v več datotekah. Pogosto moramo te datoteke združiti v en DataFrame, da analiziramo podatke. Pande nudijo takšne zmogljivosti za preprosto kombiniranje serije ali DataFrame z različnimi vrstami nastavljene logike za indekse in funkcionalnostjo relacijske algebre v primeru operacij združevanja/združevanja. Prav tako lahko združimo podatke iz več tabel Pande . Poleg tega pande ponujajo tudi pripomočke za primerjavo dveh serij ali DataFrame in povzemanje njunih razlik.

Združevanje DataFrames v Pandas

Funkcija concat() v Pandas se uporablja za dodajanje stolpcev ali vrstic iz enega DataFrame v drugega. The Funkcija Pandas concat(). opravlja vse težke naloge izvajanja operacij veriženja vzdolž osi, medtem ko izvaja izbirno nastavljeno logiko (unijo ali presečišče) indeksov (če obstajajo) na drugih oseh.



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

>

>

Izhod:

    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>

Pridruževanje DataFrames v Pandas

Ko smo združili naše podatkovne okvire, smo jih preprosto dodali drug drugemu, tj. zložili jih navpično ali drugega ob drugem. Drug način združevanja DataFrames je uporaba stolpcev v vsakem nizu podatkov, ki vsebujejo skupne vrednosti (skupni enolični ID). Združevanje DataFrames z uporabo skupnega polja se imenuje združevanje. Stolpci, ki vsebujejo skupne vrednosti, se imenujejo pridružitveni ključ(i). Združevanje DataFrame na ta način je pogosto uporabno, ko je en DataFrame iskalna tabela, ki vsebuje dodatne podatke, ki jih želimo vključiti v drugega.

Opomba: Ta postopek združevanja tabel je podoben tistemu, kar počnemo s tabelami v Baza podatkov SQL .

Pri lepljenju več podatkovnih okvirov lahko izbirate, kako ravnati z drugimi osmi (razen tiste, ki je povezana). To je mogoče storiti na naslednja dva načina:

  • Vzemite zvezo vseh, join='outer'. To je privzeta možnost, saj povzroči ničelno izgubo informacij.
  • Zapeljite na križišče, pridružite se=’notranji’.

Primer: Notranji spoj dveh podatkovnih okvirov z uporabo metode concat().

V tem primeru sta dve pandi DataFrames,df1>indf3>, so združeni z uporabo notranjega združevanja na podlagi njihovih indeksov. Nastali DataFrame, imenovan »result«, vključuje samo vrstice, v katerih je stolpec »id«.df1>se ujema s stolpcem »Mesto« vdf3>.

Python3


sortirni niz v Javi



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

>

>

Izhod:

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

Združevanje z uporabo funkcije append().

Uporabna bližnjica do concat() je metoda primerka append() na Series in DataFrame. To metodo lahko uporabite za združevanje podatkov iz več tabel v Pandas. Te metode so dejansko nastale pred concat.

Primer 1: Združevanje dveh DataFrame z uporabo metode append().

V tem primeru dva Panda DataFrames,df1>indf2>, so združeni z uporaboappend>metoda, kar ima za posledico nov DataFrame z imenom 'result'. Nastali DataFrame vsebuje vse vrstice iz obehdf1>indf2>, z neprekinjenim indeksom.

zamenjaj niz v Javi

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

>

>

Izhod:

   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>

Opomba: append() lahko za združevanje potrebuje več objektov.

Primer 2: Združite podatke iz več tabel v Pandas

V tem primeru trije Panda DataFrames,df1>,df2>, indf3>, so dodani skupaj z uporaboappend>metoda. Nastali podatkovni okvir z imenom 'rezultat' združuje vse vrstice iz treh podatkovnih okvirov in ohranja neprekinjen 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)>

>

>

Izhod:

   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>