logo

Kā apvienot divus datu kadrus Python - Pandas?

Daudzās reālās dzīves situācijās dati, kurus vēlamies izmantot, tiek iekļauti vairākos failos. Mums bieži ir nepieciešams apvienot šos failus vienā DataFrame, lai analizētu datus. Pandas nodrošina šādas iespējas, lai viegli apvienotu Series vai DataFrame ar dažāda veida iestatīto loģiku indeksiem un relāciju algebras funkcionalitāti savienošanas / sapludināšanas veida darbību gadījumā. Mēs varam arī apvienot datus no vairākām tabulām Pandas . Turklāt pandas nodrošina arī utilītas, lai salīdzinātu divas sērijas vai DataFrame un apkopotu to atšķirības.

Datu rāmju savienošana programmā Pandas

Funkcija concat() programmā Pandas tiek izmantota, lai pievienotu kolonnas vai rindas no viena DataFrame citam. The Pandas concat() funkcija veic visus smagus uzdevumus, kas saistīti ar savienošanas darbību veikšanu pa asi, vienlaikus veicot izvēles kopas loģiku (savienojumu vai krustojumu) indeksiem (ja tādi ir) uz citām asīm.



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

>

>

Izvade:

    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>

Pievienošanās DataFrames programmā Pandas

Savienojot savus datu rāmjus, mēs tos vienkārši pievienojām viens otram, t.i., salikām tos vertikāli vai blakus. Vēl viens veids, kā apvienot DataFrames, ir katrā datu kopā izmantot kolonnas, kurās ir kopīgas vērtības (kopīgs unikālais ID). DataFrames apvienošanu, izmantojot kopēju lauku, sauc par pievienošanos. Kolonnas, kurās ir kopējās vērtības, sauc par pievienošanās atslēgu(-ām). Datu rāmju pievienošana šādā veidā bieži ir noderīga, ja viens DataFrame ir uzmeklēšanas tabula, kurā ir papildu dati, kurus vēlamies iekļaut citā.

Piezīme: Šis tabulu savienošanas process ir līdzīgs tam, ko mēs darām ar tabulām an SQL datu bāze .

Salīmējot kopā vairākus DataFrame, jums ir iespēja izvēlēties, kā rīkoties ar citām asīm (izņemot to, kas tiek savienota). To var izdarīt divos šādos veidos:

  • Ņemiet viņu visu savienību, pievienojieties=’ārējais’. Šī ir noklusējuma opcija, jo tās rezultātā netiek zaudēta informācija.
  • Dodieties uz krustojumu, pievienojieties='inner'.

Piemērs: divu datu rāmju iekšējais savienojums, izmantojot concat() metodi

Šajā piemērā divi pandu datu rāmji,df1>undf3>, ir savienoti, izmantojot iekšējo savienojumu, pamatojoties uz to indeksiem. Iegūtais DataFrame ar nosaukumu “rezultāts” ietver tikai tās rindas, kurās ir kolonna “id”.df1>atbilst kolonnai “Pilsēta”.df3>.

Python3


char un int 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)>

>

>

Izvade:

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

Savienošana, izmantojot append() funkciju

Noderīgs saīsne uz concat() ir append() instances metode sērijām un DataFrame. Šo metodi var izmantot, lai apvienotu datus no vairākām Pandas tabulām. Šīs metodes faktiski bija pirms concat.

1. piemērs: divu DataFrame apvienošana, izmantojot append() metodi

Šajā piemērā divi Pandas DataFrame,df1>undf2>, tiek apvienoti, izmantojotappend>metodi, kā rezultātā tiek iegūts jauns DataFrame ar nosaukumu “rezultāts”. Iegūtais DataFrame satur visas rindas no abāmdf1>undf2>, ar nepārtrauktu indeksu.

lateksa saraksts

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

>

>

Izvade:

   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>

Piezīme: Append() var būt nepieciešami vairāki objekti, lai savienotu.

2. piemērs. Apvienojiet datus no vairākām Pandas tabulām

Šajā piemērā trīs Pandas DataFrame,df1>,df2>, undf3>, tiek pievienoti kopā, izmantojotappend>metodi. Iegūtais DataFrame ar nosaukumu “rezultāts” apvieno visas rindas no trim DataFrame, saglabājot nepārtrauktu indeksu.

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

>

>

Izvade:

   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>