logo

Come combinare due dataframe in Python – Pandas?

In molte situazioni della vita reale, i dati che vogliamo utilizzare sono disponibili in più file. Spesso abbiamo bisogno di combinare questi file in un singolo DataFrame per analizzare i dati. I Panda forniscono tali funzionalità per combinare facilmente Series o DataFrame con vari tipi di logica di insieme per gli indici e funzionalità di algebra relazionale nel caso di operazioni di tipo join/merge. Possiamo anche combinare i dati di più tabelle in Panda . Inoltre, i panda forniscono anche utilità per confrontare due serie o DataFrame e riassumere le loro differenze.

Concatenazione di dataframe in Panda

La funzione concat() in Panda viene utilizzata per aggiungere colonne o righe da un DataFrame a un altro. IL Funzione concat() di Panda fa tutto il lavoro pesante di eseguire operazioni di concatenazione lungo un asse mentre esegue la logica di insieme opzionale (unione o intersezione) degli indici (se presenti) sugli altri assi.



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

>

>

Produzione:

    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>

Unirsi ai DataFrames in Pandas

Quando abbiamo concatenato i nostri DataFrame, li abbiamo semplicemente aggiunti l'uno all'altro, ovvero li abbiamo impilati verticalmente o fianco a fianco. Un altro modo per combinare DataFrames consiste nell'utilizzare colonne in ogni set di dati che contengono valori comuni (un ID univoco comune). La combinazione di DataFrames utilizzando un campo comune viene chiamata unione. Le colonne contenenti i valori comuni sono chiamate chiavi di join. Unire DataFrame in questo modo è spesso utile quando un DataFrame è una tabella di ricerca contenente dati aggiuntivi che vogliamo includere nell'altro.

Nota: Questo processo di unione delle tabelle è simile a quello che facciamo con le tabelle in un file Base di dati SQL .

Quando si uniscono più DataFrame, è possibile scegliere come gestire gli altri assi (diversi da quello concatenato). Ciò può essere fatto nei due modi seguenti:

  • Prendi l’unione di tutti loro, join=’outer’. Questa è l'opzione predefinita poiché non comporta alcuna perdita di informazioni.
  • Prendi l'intersezione, join='interno'.

Esempio: unione interna di due dataframe utilizzando il metodo concat()

In questo esempio, due DataFrames panda,df1>Edf3>, vengono concatenati utilizzando un inner join basato sui relativi indici. Il DataFrame risultante, denominato 'risultato', include solo le righe in cui è presente la colonna 'id'.df1>corrisponde alla colonna 'Città' indf3>.

Python3


Java ottiene la data corrente



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

>

>

Produzione:

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

Concatenazione utilizzando la funzione append()

Un'utile scorciatoia per concat() è il metodo di istanza append() su Series e DataFrame. Questo metodo può essere utilizzato per combinare dati da più tabelle in Panda. Questi metodi in realtà erano antecedenti al concat.

Esempio 1: combinazione di due DataFrame utilizzando il metodo append()

In questo esempio, due Pandas DataFrames,df1>Edf2>, vengono combinati utilizzando ilappend>metodo, risultando in un nuovo DataFrame denominato 'risultato'. Il DataFrame risultante contiene tutte le righe di entrambidf1>Edf2>, con un indice continuo.

unione di stringhe 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)>

>

>

Produzione:

   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>

Nota: append() potrebbe richiedere la concatenazione di più oggetti.

Esempio 2: combinare dati da più tabelle in Panda

In questo esempio, tre DataFrames Panda,df1>,df2>, Edf3>, vengono aggiunti insieme utilizzando l'estensioneappend>metodo. Il DataFrame risultante denominato 'risultato' combina tutte le righe dei tre DataFrame, mantenendo un indice continuo.

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

>

>

Produzione:

   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>