logo

Come combinare due dataframe in Python - Pandas

Panda

Pandas è una libreria integrata in Python che viene utilizzata per lavorare con dati relazionali nel linguaggio di programmazione Python. Ha molte funzioni e strutture dati che aiutano nelle operazioni dei dati relazionali.

Se i dati sono archiviati sotto forma di righe e colonne o dati bidimensionali, nei panda vengono generalmente chiamati dataframe.

Se disponiamo di due dataframe, con l'aiuto dei panda possiamo combinarli o unirli in un unico dataframe. I panda forniscono la logica impostata per combinare i dati di due diversi dataframe, nonché la logica per confrontarli.

1. Utilizzando la funzione concat()

In Python possiamo concatenare i due dataframe con l'aiuto della funzione concat() di Pandas. Possiamo concatenare i dati sia per riga che per colonna. Questa funzione unisce i dati su un asse (riga o colonna) ed esegue la logica impostata su un altro asse (un altro indice).

Esempio:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'DEF', 'GHI'], 'Marks':[65,69,96,89]}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'Name': ['XYZ', 'TUV', 'MNO', 'JKL'], 'Marks':[56,96,69,98]}) frames = [dataFrame1, dataFrame2] result = pd.concat(frames) display(result) 

Produzione:

Come combinare due dataframe in Python - Pandas

Spiegazione:

Nel codice sopra, abbiamo prima importato la libreria Pandas nel file. Quindi, abbiamo creato i due dataframe in cui ciascun dataframe contiene tre colonne e quattro righe. Quindi abbiamo utilizzato la funzione concat, che concatena questi due dataframe per riga, e con la funzione display, l'abbiamo stampato sullo schermo.

2. Utilizzo dei join nei panda

Abbiamo compreso il concetto di join nel database in cui uniamo le due tabelle in base ad alcuni attributi comuni. Lo stesso metodo è applicabile nella concatenazione di dataframe. Nel semplice metodo concat(), abbiamo unito tutte le righe una sull'altra e creato il nuovo dataframe. Nel join definiamo quale tipo di join vogliamo eseguire sulla tabella, se si tratta di un inner join o di un external join. Qualunque sia il tipo di join, inner join (intersezione) o external join (unione), verrà definito nell'attributo join.

Esempio:

Java ottiene la data corrente
 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=1, join='inner') display(result) 

Produzione:

Come combinare due dataframe in Python - Pandas

Spiegazione:

Nel codice sopra abbiamo due daraframe che contengono entrambi due colonne e quattro righe. Entrambi i dataframe hanno nomi di colonna diversi e nella funzione concat() abbiamo utilizzato l'inner join, che prende la parte di intersezione.

Nell'attributo axis abbiamo inizializzato il valore uno, quindi abbiamo ottenuto tutti i dati.

Esempio:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'],'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

Produzione:

unione di stringhe Java
Come combinare due dataframe in Python - Pandas

Poiché non esiste un attributo comune ed è stato applicato l'inner join, abbiamo ottenuto come output un frame di dati vuoto. Se esiste un attributo comune in entrambi i dataframe:

Esempio:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

Produzione:

Come combinare due dataframe in Python - Pandas

Spiegazione:

Nel codice precedente, abbiamo un attributo, 'id', che è comune, quindi il dataframe viene creato in base solo ad attributi comuni.

3. Utilizzando il metodo append()

Invece del metodo concat(), possiamo usare il metodo append(). Questo metodo append() viene applicato a uno dei dataframe.

Esempio:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'City': ['JAIPUR', 'MANALI', 'NOIDA', 'LUCKNOW']}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['MUMBAI', 'UDAIPUR', 'RISHIKESH', 'KASHMIR']}) # append method result = dataFrame1.append(dataFrame2) display(result) 

Produzione:

Come combinare due dataframe in Python - Pandas

Spiegazione:

Nel codice precedente, abbiamo unito due dataframe utilizzando il metodo append.