Come unire i dati dei dati in Pandas Python?

Come unire i dati dei dati in Pandas Python?
Pandas DataFrame è una struttura di dati bidimensionali (2D) che è allineata in un formato tabulare. Questi gesti di dati possono essere combinati utilizzando metodi diversi come concat (), unione () e si uniscono. I panda hanno prestazioni elevate e operazioni di join in piena misura che sono somigliate al database relazionale SQL. Utilizzando la funzione di unione, le operazioni di join possono essere implementate tra gli oggetti DataFrames.

Esploreremo gli usi della funzione di unione, la funzione concat e i diversi tipi di operazioni di join in Pandas Python in questo articolo. Tutti gli esempi saranno eseguiti tramite l'editor Pycharm. Cominciamo con i dettagli!

Uso della funzione di unione

La sintassi di base comunemente usata della funzione Merge () è riportata al grande:

pd.Merge (df_obj1, df_obj2, how = 'interno', on = none, left_on = nessuno, destro_on = nessuno)

Spieghiamo i dettagli dei parametri:

I primi due df_obj1 E df_obj2 Gli argomenti sono i nomi degli oggetti o delle tabelle.

IL "Come"Il parametro viene utilizzato per diversi tipi di operazioni di join come" sinistro, destro, esterno e interno ". La funzione di unione utilizza l'operazione di join "interno" per impostazione predefinita.

L'argomento "SU" contiene il nome della colonna su cui viene eseguita l'operazione di join. Questa colonna deve essere presente in entrambi gli oggetti di dati.

Negli argomenti "Left_on" e "Right_on", "Left_on" è il nome del nome della colonna come chiave nel frame dati sinistro. Il "diritto_on" è il nome della colonna utilizzata come chiave dal frame dati giusto.

Per approfondire il concetto di unire i dati dei dati, abbiamo preso due oggetti di dati: prodotto e cliente. I seguenti dettagli sono presenti nel telaio del prodotto:

Prodotto = PD.DataFrame (
'Product_id': [101,102,103,104,105,106,107],
'Product_name': ['Cuffie', 'Bag', 'Scarpe', 'Smartphone', 'Brush Deeth', 'Wrist Watch', 'Laptop'],
"Categoria": ["Electronics", "Fashion", "Fashion", "Electronics", "Grocery", "Fashion", "Electronics",
'Price': [300.0,1000.50.2000.0,21999.0,145.0.1500.0,90999.0],
"Seller_city": ["Islamabad", "Lahore", "Karachi", "Rawalpindi", "Islamabad", "Karachi", "Faisalabad"
)

Il telaio di dati del cliente contiene i seguenti dettagli:

Cliente = PD.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_name': ['sara', 'sana', 'ali', 'raees', 'mahwish', 'umar', 'mirha', 'asif', 'maria',
'Age': [20,21,15,10,31,52,15,18,16],
'Product_id': [101,0,106,0,103,104,0,0,107],
'Product_purchased': ['cuffie', 'na', 'orologio da polso', 'na', 'scarpe', 'smartphone', 'na', 'na', 'laptop'],
"Customer_City": ["Lahore", "Islamabad", "Faisalabad", "Karachi", "Karachi", "Islamabad", "Rawalpindi", "Islamabad",
'Lahore']
)

Unisciti a dati su una chiave

Possiamo facilmente trovare prodotti venduti online e i clienti che li hanno acquistati. Quindi, basato su un "Product_id" chiave, abbiamo eseguito l'operazione di join interiore su entrambi i frame dati come segue:

# Importa Libreria Pandas
Importa panda come PD
Prodotto = PD.DataFrame (
'Product_id': [101,102,103,104,105,106,107],
'Product_name': ['Cuffie', 'Bag', 'Scarpe', 'Smartphone', 'Brush Deeth', 'Wrist Watch', 'Laptop'],
"Categoria": ["Electronics", "Fashion", "Fashion", "Electronics", "Grocery", "Fashion", "Electronics",
'Price': [300.0,1000.50.2000.0,21999.0,145.0.1500.0,90999.0],
"Seller_city": ["Islamabad", "Lahore", "Karachi", "Rawalpindi", "Islamabad", "Karachi", "Faisalabad"
)
Cliente = PD.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_name': ['sara', 'sana', 'ali', 'raees', 'mahwish', 'umar', 'mirha', 'asif', 'maria',
'Age': [20,21,15,10,31,52,15,18,16],
'Product_id': [101,0,106,0,103,104,0,0,107],
'Product_purchased': ['cuffie', 'na', 'orologio da polso', 'na', 'scarpe', 'smartphone', 'na', 'na', 'laptop'],
"Città": ["Lahore", "Islamabad", "Faisalabad", "Karachi", "Karachi", "Islamabad", "Rawalpindi", "Islamabad",
'Lahore']
)
Stampa (PD.unisci (prodotto, cliente, on = 'product_id'))

Il seguente output viene visualizzato sulla finestra dopo l'esecuzione del codice sopra:

Se le colonne sono diverse in entrambi i frame dati, scrivi esplicitamente il nome di ciascuna colonna da parte di sinistra_on e gli argomenti di destra come segue:

Importa panda come PD
Prodotto = PD.DataFrame (
'Product_id': [101,102,103,104,105,106,107],
'Product_name': ['Cuffie', 'Bag', 'Scarpe', 'Smartphone', 'Brush Deeth', 'Wrist Watch', 'Laptop'],
"Categoria": ["Electronics", "Fashion", "Fashion", "Electronics", "Grocery", "Fashion", "Electronics",
'Price': [300.0,1000.50.2000.0,21999.0,145.0.1500.0,90999.0],
"Seller_city": ["Islamabad", "Lahore", "Karachi", "Rawalpindi", "Islamabad", "Karachi", "Faisalabad"
)
Cliente = PD.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_name': ['sara', 'sana', 'ali', 'raees', 'mahwish', 'umar', 'mirha', 'asif', 'maria',
'Age': [20,21,15,10,31,52,15,18,16],
'Product_id': [101,0,106,0,103,104,0,0,107],
'Product_purchased': ['cuffie', 'na', 'orologio da polso', 'na', 'scarpe', 'smartphone', 'na', 'na', 'laptop'],
"Città": ["Lahore", "Islamabad", "Faisalabad", "Karachi", "Karachi", "Islamabad", "Rawalpindi", "Islamabad",
'Lahore']
)
Stampa (PD.Merge (Product, Customer, Left_on = 'Product_Name', Right_on = 'Product_Purchased'))

La seguente uscita verrà visualizzata sullo schermo:

Unisciti a dati utilizzando come argomento

Nei seguenti esempi, spiegheremo quattro tipi di operazioni di join su Pandas DataFrames:

  • Unisciti interni
  • Giuntura esterna
  • Sinistra uni
  • Giusti a destra

Iscriviti interni a Panda

Possiamo eseguire un join interno su più chiavi. Per visualizzare maggiori dettagli sulle vendite del prodotto, prendi Product_id, Seller_city dal prodotto DataFrame e Product_id e "Customer_City" dal Customer DataFrame per scoprire che il venditore o il cliente appartiene alla stessa città. Implementare le seguenti righe di codice:

# Importa Libreria Pandas
Importa panda come PD
Prodotto = PD.DataFrame (
'Product_id': [101,102,103,104,105,106,107],
'Product_name': ['Cuffie', 'Bag', 'Scarpe', 'Smartphone', 'Brush Deeth', 'Wrist Watch', 'Laptop'],
"Categoria": ["Electronics", "Fashion", "Fashion", "Electronics", "Grocery", "Fashion", "Electronics",
'Price': [300.0,1000.50.2000.0,21999.0,145.0.1500.0,90999.0],
"Seller_city": ["Islamabad", "Lahore", "Karachi", "Rawalpindi", "Islamabad", "Karachi", "Faisalabad"
)
Cliente = PD.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_name': ['sara', 'sana', 'ali', 'raees', 'mahwish', 'umar', 'mirha', 'asif', 'maria',
'Age': [20,21,15,10,31,52,15,18,16],
'Product_id': [101,0,106,0,103,104,0,0,107],
'Product_purchased': ['cuffie', 'na', 'orologio da polso', 'na', 'scarpe', 'smartphone', 'na', 'na', 'laptop'],
"Customer_City": ["Lahore", "Islamabad", "Faisalabad", "Karachi", "Karachi", "Islamabad", "Rawalpindi", "Islamabad",
'Lahore']
)
Stampa (PD.Merge (Product, Customer, How = 'Inner', Left_on = ['Product_id', 'Seller_City'], Right_on = ['Product_id', 'Customer_City']))

Il seguente risultato viene visualizzato sulla finestra dopo l'esecuzione del codice sopra:

Iscrizione completa/esterna in panda

I join esterni restituiscono entrambi i valori di dati a destra e sinistra, che hanno corrispondenza. Quindi, per implementare il join esterno, imposta l'argomento "come" come esterno. Modifichiamo l'esempio sopra utilizzando il concetto di join esterno. Nel codice seguente, restituirà tutti i valori dei gesti di dati sia sinistra che destra.

# Importa Libreria Pandas
Importa panda come PD
Prodotto = PD.DataFrame (
'Product_id': [101,102,103,104,105,106,107],
'Product_name': ['Cuffie', 'Bag', 'Scarpe', 'Smartphone', 'Brush Deeth', 'Wrist Watch', 'Laptop'],
"Categoria": ["Electronics", "Fashion", "Fashion", "Electronics", "Grocery", "Fashion", "Electronics",
'Price': [300.0,1000.50.2000.0,21999.0,145.0.1500.0,90999.0],
"Seller_city": ["Islamabad", "Lahore", "Karachi", "Rawalpindi", "Islamabad", "Karachi", "Faisalabad"
)
Cliente = PD.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_name': ['sara', 'sana', 'ali', 'raees', 'mahwish', 'umar', 'mirha', 'asif', 'maria',
'Age': [20,21,15,10,31,52,15,18,16],
'Product_id': [101,0,106,0,103,104,0,0,107],
'Product_purchased': ['cuffie', 'na', 'orologio da polso', 'na', 'scarpe', 'smartphone', 'na', 'na', 'laptop'],
"Customer_City": ["Lahore", "Islamabad", "Faisalabad", "Karachi", "Karachi", "Islamabad", "Rawalpindi", "Islamabad",
'Lahore']
)
Stampa (PD.unisci (prodotto, cliente, on = 'product_id', how = 'esterno'))

Imposta l'argomento indicatore come "vero" s. Noterai che alla fine viene aggiunta la nuova colonna "_merge".

# Importa Libreria Pandas
Importa panda come PD
Prodotto = PD.DataFrame (
'Product_id': [101,102,103,104,105,106,107],
'Product_name': ['Cuffie', 'Bag', 'Scarpe', 'Smartphone', 'Brush Deeth', 'Wrist Watch', 'Laptop'],
"Categoria": ["Electronics", "Fashion", "Fashion", "Electronics", "Grocery", "Fashion", "Electronics",
'Price': [300.0,1000.50.2000.0,21999.0,145.0.1500.0,90999.0],
"Seller_city": ["Islamabad", "Lahore", "Karachi", "Rawalpindi", "Islamabad", "Karachi", "Faisalabad"
)
Cliente = PD.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_name': ['sara', 'sana', 'ali', 'raees', 'mahwish', 'umar', 'mirha', 'asif', 'maria',
'Age': [20,21,15,10,31,52,15,18,16],
'Product_id': [101,0,106,0,103,104,0,0,107],
'Product_purchased': ['cuffie', 'na', 'orologio da polso', 'na', 'scarpe', 'smartphone', 'na', 'na', 'laptop'],
"Customer_City": ["Lahore", "Islamabad", "Faisalabad", "Karachi", "Karachi", "Islamabad", "Rawalpindi", "Islamabad",
'Lahore']
)
Stampa (PD.unisci (prodotto, cliente, on = 'product_id', how = 'esterno', indicatore = true))

Come puoi vedere nello screenshot seguente, i valori della colonna di unione spiegano quale riga appartiene a quale frame dati.

Sinistra unisciti a panda

Join sinistra Visualizza solo le righe del telaio di dati a sinistra. È simile al join esterno. Quindi, cambia il valore dell'argomento "come" con "sinistra". Prova il seguente codice per implementare l'idea di sinistra join:

# Importa Libreria Pandas
Importa panda come PD
Prodotto = PD.DataFrame (
'Product_id': [101,102,103,104,105,106,107],
'Product_name': ['Cuffie', 'Bag', 'Scarpe', 'Smartphone', 'Brush Deeth', 'Wrist Watch', 'Laptop'],
"Categoria": ["Electronics", "Fashion", "Fashion", "Electronics", "Grocery", "Fashion", "Electronics",
'Price': [300.0,1000.50.2000.0,21999.0,145.0.1500.0,90999.0],
"Seller_city": ["Islamabad", "Lahore", "Karachi", "Rawalpindi", "Islamabad", "Karachi", "Faisalabad"
)
Cliente = PD.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_name': ['sara', 'sana', 'ali', 'raees', 'mahwish', 'umar', 'mirha', 'asif', 'maria',
'Age': [20,21,15,10,31,52,15,18,16],
'Product_id': [101,0,106,0,103,104,0,0,107],
'Product_purchased': ['cuffie', 'na', 'orologio da polso', 'na', 'scarpe', 'smartphone', 'na', 'na', 'laptop'],
"Customer_City": ["Lahore", "Islamabad", "Faisalabad", "Karachi", "Karachi", "Islamabad", "Rawalpindi", "Islamabad",
'Lahore']
)
Stampa (PD.unisci (prodotto, cliente, on = 'product_id', how = 'sinistra'))

Giusti a destra a Pandas

Il join destro mantiene tutte le righe del frame di dati giuste a destra insieme alle righe che sono anche comuni nel frame dati sinistro. In questo caso, l'argomento "come" è impostato come valore "giusto". Esegui il seguente codice per implementare il concetto di join giusto:

# Importa Libreria Pandas
Importa panda come PD
Prodotto = PD.DataFrame (
'Product_id': [101,102,103,104,105,106,107],
'Product_name': ['Cuffie', 'Bag', 'Scarpe', 'Smartphone', 'Brush Deeth', 'Wrist Watch', 'Laptop'],
"Categoria": ["Electronics", "Fashion", "Fashion", "Electronics", "Grocery", "Fashion", "Electronics",
'Price': [300.0,1000.50.2000.0,21999.0,145.0.1500.0,90999.0],
"Seller_city": ["Islamabad", "Lahore", "Karachi", "Rawalpindi", "Islamabad", "Karachi", "Faisalabad"
)
Cliente = PD.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_name': ['sara', 'sana', 'ali', 'raees', 'mahwish', 'umar', 'mirha', 'asif', 'maria',
'Age': [20,21,15,10,31,52,15,18,16],
'Product_id': [101,0,106,0,103,104,0,0,107],
'Product_purchased': ['cuffie', 'na', 'orologio da polso', 'na', 'scarpe', 'smartphone', 'na', 'na', 'laptop'],
"Customer_City": ["Lahore", "Islamabad", "Faisalabad", "Karachi", "Karachi", "Islamabad", "Rawalpindi", "Islamabad",
'Lahore']
)
Stampa (PD.unisci (prodotto, cliente, on = 'product_id', how = 'diritto'))

Nella seguente screenshot, puoi vedere il risultato dopo l'esecuzione del codice sopra:

Uning of DataFrames utilizzando la funzione Concat ()

Due frame di dati possono essere uniti utilizzando la funzione Concat. La sintassi di base della funzione di concatenazione è riportata di seguito:

pd.concat ([df_obj1, df_obj_2])

Due oggetti di dati di dati passano come argomenti.

Unisciti al prodotto e al cliente di dati tramite la funzione concat. Esegui le seguenti righe di codice per unire due frame di dati:

# Importa Libreria Pandas
Importa panda come PD
Prodotto = PD.DataFrame (
'Product_id': [101,102,103,104,105,106,107],
'Product_name': ['Cuffie', 'Bag', 'Scarpe', 'Smartphone', 'Brush Deeth', 'Wrist Watch', 'Laptop'],
"Categoria": ["Electronics", "Fashion", "Fashion", "Electronics", "Grocery", "Fashion", "Electronics",
'Price': [300.0,1000.50.2000.0,21999.0,145.0.1500.0,90999.0],
"Seller_city": ["Islamabad", "Lahore", "Karachi", "Rawalpindi", "Islamabad", "Karachi", "Faisalabad"
)
Cliente = PD.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_name': ['sara', 'sana', 'ali', 'raees', 'mahwish', 'umar', 'mirha', 'asif', 'maria',
'Age': [20,21,15,10,31,52,15,18,16],
'Product_id': [101,0,106,0,103,104,0,0,107],
'Product_purchased': ['cuffie', 'na', 'orologio da polso', 'na', 'scarpe', 'smartphone', 'na', 'na', 'laptop'],
"Customer_City": ["Lahore", "Islamabad", "Faisalabad", "Karachi", "Karachi", "Islamabad", "Rawalpindi", "Islamabad",
'Lahore']
)
Stampa (PD.Concat ([Prodotto, Cliente]))

Conclusione:

In questo articolo, abbiamo discusso dell'implementazione della funzione Merge (), Funzioni Concat () e unire il funzionamento a Pandas Python. Utilizzando i metodi sopra, puoi facilmente unirsi a due frame di dati e appreso. Come implementare le operazioni di join "interno, esterno, sinistro e destro" in Panda. Spero che questo tutorial ti guiderà nell'implementazione delle operazioni di join su diversi tipi di dati di dati. Facci sapere delle tue difficoltà in caso di errore.