logo

Cum să combinați două cadre de date în Python - Pandas?

În multe situații din viața reală, datele pe care dorim să le folosim vin în mai multe fișiere. De multe ori avem nevoie să combinăm aceste fișiere într-un singur DataFrame pentru a analiza datele. Pandas oferă astfel de facilități pentru a combina cu ușurință Series sau DataFrame cu diferite tipuri de logici set pentru indici și funcționalitatea algebră relațională în cazul operațiunilor de tip join/merge. De asemenea, putem combina datele din mai multe tabele în panda . În plus, panda oferă, de asemenea, utilități pentru a compara două Serii sau DataFrame și pentru a rezuma diferențele lor.

Concatenarea cadrelor de date în Pandas

Funcția concat() din Pandas este folosită pentru a adăuga fie coloane, fie rânduri de la un DataFrame la altul. The Funcția Pandas concat(). face toate sarcinile grele de a efectua operații de concatenare de-a lungul unei axe în timp ce efectuează logica setată opțională (unire sau intersecție) a indicilor (dacă există) pe celelalte axe.



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

>

>

Ieșire:

    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>

Aderarea la DataFrames în Pandas

Când ne-am concatenat DataFrames-ul, le-am adăugat pur și simplu unul altuia, adică le-am stivuit fie vertical, fie unul lângă altul. O altă modalitate de a combina DataFrames este să utilizați coloane în fiecare set de date care conțin valori comune (un id unic comun). Combinarea cadrelor de date folosind un câmp comun se numește îmbinare. Coloanele care conțin valorile comune se numesc chei de unire. Asocierea DataFrame-urilor în acest mod este adesea utilă atunci când un DataFrame este un tabel de căutare care conține date suplimentare pe care dorim să le includem în celălalt.

Notă: Acest proces de unire a tabelelor este similar cu ceea ce facem cu tabelele într-un baza de date SQL .

Când lipiți mai multe DataFrames, aveți posibilitatea de a alege cum să manipulați celelalte axe (altele decât cea care este concatenată). Acest lucru se poate face în următoarele două moduri:

  • Ia unirea tuturor, join=’exterior’. Aceasta este opțiunea implicită, deoarece are ca rezultat zero pierderi de informații.
  • Luați intersecția, join=’inner’.

Exemplu: Îmbinarea interioară a două cadre de date folosind metoda concat().

În acest exemplu, două cadre de date panda,df1>șidf3>, sunt concatenate utilizând o îmbinare interioară pe baza indicilor lor. DataFrame rezultat, numit „rezultat”, include numai rândurile în care coloana „id” dindf1>se potrivește cu coloana „Oraș” îndf3>.

Python3


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

>

>

Ieșire:

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

Concatenarea folosind funcția append().

O comandă rapidă utilă la concat() este metoda instanței append() pe Series și DataFrame. Această metodă poate fi folosită pentru a combina date din mai multe tabele în Pandas. Aceste metode au precedat de fapt concat.

Exemplul 1: Combinarea a două DataFrame folosind metoda append().

În acest exemplu, două Pandas DataFrames,df1>șidf2>, sunt combinate folosindappend>metoda, rezultând un nou DataFrame numit „rezultat”. DataFrame rezultat conține toate rândurile din ambeledf1>șidf2>, cu un indice continuu.

mysql a lăsat alăturarea

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

>

>

Ieșire:

   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>

Notă: append() poate lua mai multe obiecte pentru a se concatena.

Exemplul 2: Combinați datele din mai multe tabele în Pandas

În acest exemplu, trei Pandas DataFrames,df1>,df2>, șidf3>, sunt atașate împreună folosindappend>metodă. DataFrame-ul rezultat numit „rezultat” combină toate rândurile din cele trei DataFrames, menținând un index continuu.

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

>

>

Ieșire:

   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>