panda

Cum să vă alăturați DataFrames în Pandas Python?

Cum să vă alăturați DataFrames în Pandas Python?
Pandas DataFrame este o structură de date bidimensională (2D) aliniată într-un format tabelar. Aceste DataFrames pot fi combinate folosind diferite metode, cum ar fi concat (), merge () și join-uri. Pandele au performanțe ridicate și operațiuni de asociere complete, care seamănă cu baza de date relațională SQL. Folosind funcția de îmbinare, operațiile de îmbinare pot fi implementate între obiectele DataFrames.

În acest articol vom explora utilizările funcției de îmbinare, funcția concat și diferitele tipuri de operațiuni de îmbinare în Python Pandas. Toate exemplele vor fi executate prin intermediul editorului pycharm. Să începem cu detaliile!

Utilizarea funcției Merge

Sintaxa de bază frecvent utilizată a funcției merge () este prezentată mai jos:

pd.merge (df_obj1, df_obj2, how = 'interior', on = None, left_on = None, right_on = None)

Să explicăm detaliile parametrilor:

Primii doi df_obj1 și df_obj2 argumentele sunt numele obiectelor sau tabelelor DataFrame.

Cum”Parametrul este utilizat pentru diferite tipuri de operațiuni de îmbinare, cum ar fi„ stânga, dreapta, exteriorul și interiorul ”. Funcția de îmbinare utilizează operația de îmbinare „interioară” în mod implicit.

Argumentul "pe" conține numele coloanei pe care se efectuează operația de asociere. Această coloană trebuie să fie prezentă în ambele obiecte DataFrame.

În argumentele „left_on” și „right_on”, „left_on” este numele numelui coloanei ca cheie în DataFrame stânga. „Right_on” este numele coloanei utilizate ca cheie din DataFrame din dreapta.

Pentru a elabora conceptul de aderare la DataFrames, am luat două obiecte DataFrame - produs și client. Următoarele detalii sunt prezente în produsul DataFrame:

produs = pd.DataFrame (
„ID_produs”: [101.102.103.104.105.106.107],
„Product_Name”: [„căști”, „Geantă”, „încălțăminte”, „Smartphone”, „Perie pentru dinți”, „ceas de mână”, „Laptop”],
„Categorie”: [„Electronică”, „Modă”, „Modă”, „Electronică”, „Băcănie”, „Modă”, „Electronică”],
„Preț”: [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City”: [„Islamabad”, „Lahore”, „Karachi”, „Rawalpindi”, „Islamabad”, „Karachi”, „Faisalabad”]
)

DataFrame-ul clientului conține următoarele detalii:

client = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_Name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „Asif”, „Maria”],
„Vârstă”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
„Produs_Cumpărat”: [„căști”, „NA”, „ceas de mână”, „NA”, „Încălțăminte”, „Smartphone”, „NA”, „NA”, „Laptop”],
„Customer_City”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karachi”, „Karachi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)

Alăturați-vă DataFrames pe o cheie

Putem găsi cu ușurință produsele vândute online și clienții care le-au achiziționat. Deci, pe baza unei chei „Product_ID”, am efectuat operațiunea de îmbinare interioară pe ambele DataFrames după cum urmează:

# import bibliotecă Pandas
import panda ca pd
produs = pd.DataFrame (
„ID_produs”: [101.102.103.104.105.106.107],
„Product_Name”: [„căști”, „Geantă”, „încălțăminte”, „Smartphone”, „Perie pentru dinți”, „ceas de mână”, „Laptop”],
„Categorie”: [„Electronică”, „Modă”, „Modă”, „Electronică”, „Băcănie”, „Modă”, „Electronică”],
„Preț”: [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City”: [„Islamabad”, „Lahore”, „Karachi”, „Rawalpindi”, „Islamabad”, „Karachi”, „Faisalabad”]
)
client = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_Name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „Asif”, „Maria”],
„Vârstă”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
„Produs achiziționat”: [„căști”, „NA”, „ceas de mână”, „NA”, „Încălțăminte”, „Smartphone”, „NA”, „NA”, „Laptop”],
„Oraș”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karachi”, „Karachi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
print (pd.merge (produs, client, pe = 'ID_produs'))

Următoarea ieșire se afișează pe fereastră după executarea codului de mai sus:

Dacă coloanele sunt diferite în ambele DataFrames, scrieți în mod explicit numele fiecărei coloane prin argumentele left_on și right_on după cum urmează:

import panda ca pd
produs = pd.DataFrame (
„ID_produs”: [101.102.103.104.105.106.107],
„Product_Name”: [„căști”, „Geantă”, „încălțăminte”, „Smartphone”, „Perie pentru dinți”, „ceas de mână”, „Laptop”],
„Categorie”: [„Electronică”, „Modă”, „Modă”, „Electronică”, „Băcănie”, „Modă”, „Electronică”],
„Preț”: [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City”: [„Islamabad”, „Lahore”, „Karachi”, „Rawalpindi”, „Islamabad”, „Karachi”, „Faisalabad”]
)
client = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_Name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „Asif”, „Maria”],
„Vârstă”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
„Produs_Cumpărat”: [„căști”, „NA”, „ceas de mână”, „NA”, „Încălțăminte”, „Smartphone”, „NA”, „NA”, „Laptop”],
„Oraș”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karachi”, „Karachi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
print (pd.merge (produs, client, left_on = 'Product_Name', right_on = 'Product_Purchased'))

Următoarea ieșire va fi afișată pe ecran:

Alăturați-vă DataFrames folosind How Argument

În exemplele următoare, vom explica patru tipuri de operațiuni de Alăturare pe Pandas DataFrames:

Alăturați-vă în panda

Putem efectua o îmbinare interioară pe mai multe taste. Pentru a afișa mai multe detalii despre vânzările produselor, luați Product_ID, Seller_City din produsul DataFrame și Product_ID și „Customer_City” din clientul DataFrame pentru a afla că vânzătorul sau clientul aparține aceluiași oraș. Implementați următoarele linii de cod:

# import bibliotecă Pandas
import panda ca pd
produs = pd.DataFrame (
„ID_produs”: [101.102.103.104.105.106.107],
„Product_Name”: [„căști”, „Geantă”, „încălțăminte”, „Smartphone”, „Perie pentru dinți”, „ceas de mână”, „Laptop”],
„Categorie”: [„Electronică”, „Modă”, „Modă”, „Electronică”, „Băcănie”, „Modă”, „Electronică”],
„Preț”: [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City”: [„Islamabad”, „Lahore”, „Karachi”, „Rawalpindi”, „Islamabad”, „Karachi”, „Faisalabad”]
)
client = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_Name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „Asif”, „Maria”],
„Vârstă”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
„Produs achiziționat”: [„căști”, „NA”, „ceas de mână”, „NA”, „Încălțăminte”, „Smartphone”, „NA”, „NA”, „Laptop”],
„Customer_City”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karachi”, „Karachi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
print (pd.merge (produs, client, how = 'interior', left_on = ['Product_ID', 'Seller_City'], right_on = ['Product_ID', 'Customer_City']))

Următorul rezultat se afișează pe fereastră după executarea codului de mai sus:

Alăturare completă / exterioară în panda

Îmbinările exterioare returnează valorile DataFrames atât la dreapta cât și la stânga, care au fie potriviri. Deci, pentru a implementa unirea exterioară, setați argumentul „cum” ca exterior. Să modificăm exemplul de mai sus folosind conceptul de îmbinare exterioară. În codul de mai jos, va returna toate valorile atât pentru stânga cât și pentru dreapta DataFrames.

# import bibliotecă Pandas
import panda ca pd
produs = pd.DataFrame (
„ID_produs”: [101.102.103.104.105.106.107],
„Product_Name”: [„căști”, „Geantă”, „încălțăminte”, „Smartphone”, „Perie pentru dinți”, „ceas de mână”, „Laptop”],
„Categorie”: [„Electronică”, „Modă”, „Modă”, „Electronică”, „Băcănie”, „Modă”, „Electronică”],
„Preț”: [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City”: [„Islamabad”, „Lahore”, „Karachi”, „Rawalpindi”, „Islamabad”, „Karachi”, „Faisalabad”]
)
client = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_Name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „Asif”, „Maria”],
„Vârstă”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
„Produs achiziționat”: [„căști”, „NA”, „ceas de mână”, „NA”, „Încălțăminte”, „Smartphone”, „NA”, „NA”, „Laptop”],
„Customer_City”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karachi”, „Karachi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
tipărire (pd.merge (produs, client, pe = 'ID_produs', cum = 'exterior'))

Setați argumentul indicator ca „Adevărat”. Veți observa că noua coloană „_merge” este adăugată la final.

# import bibliotecă Pandas
import panda ca pd
produs = pd.DataFrame (
„ID_produs”: [101.102.103.104.105.106.107],
„Product_Name”: [„căști”, „Geantă”, „încălțăminte”, „Smartphone”, „Perie pentru dinți”, „ceas de mână”, „Laptop”],
„Categorie”: [„Electronică”, „Modă”, „Modă”, „Electronică”, „Băcănie”, „Modă”, „Electronică”],
„Preț”: [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City”: [„Islamabad”, „Lahore”, „Karachi”, „Rawalpindi”, „Islamabad”, „Karachi”, „Faisalabad”]
)
client = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_Name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „Asif”, „Maria”],
„Vârstă”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
„Produs achiziționat”: [„căști”, „NA”, „ceas de mână”, „NA”, „Încălțăminte”, „Smartphone”, „NA”, „NA”, „Laptop”],
„Customer_City”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karachi”, „Karachi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
tipărire (pd.merge (produs, client, pe = 'ID_produs', cum = 'exterior', indicator = Adevărat))

După cum puteți vedea în captura de ecran de mai jos, valorile coloanei de îmbinare explică care rând aparține cărui DataFrame.

Stânga Alăturați-vă în panda

Unirea la stânga afișează numai rândurile din DataFrame din stânga.  Este similar cu îmbinarea exterioară. Deci, schimbați valoarea argumentului „cum” cu „stânga”. Încercați următorul cod pentru a implementa ideea de asociere la stânga:

# import bibliotecă Pandas
import panda ca pd
produs = pd.DataFrame (
„ID_produs”: [101.102.103.104.105.106.107],
„Product_Name”: [„căști”, „Geantă”, „încălțăminte”, „Smartphone”, „Perie pentru dinți”, „ceas de mână”, „Laptop”],
„Categorie”: [„Electronică”, „Modă”, „Modă”, „Electronică”, „Băcănie”, „Modă”, „Electronică”],
„Preț”: [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City”: [„Islamabad”, „Lahore”, „Karachi”, „Rawalpindi”, „Islamabad”, „Karachi”, „Faisalabad”]
)
client = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_Name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „Asif”, „Maria”],
„Vârstă”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
„Produs_Cumpărat”: [„căști”, „NA”, „ceas de mână”, „NA”, „Încălțăminte”, „Smartphone”, „NA”, „NA”, „Laptop”],
„Customer_City”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karachi”, „Karachi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
print (pd.merge (produs, client, pe = 'ID_produs', cum = 'stânga'))

Alăturați-vă corect la panda

Îmbinarea dreaptă păstrează toate rândurile de DataFrame la dreapta, împreună cu rândurile care sunt, de asemenea, comune în DataFrame din stânga. În acest caz, argumentul „cum” este setat ca valoare „corectă”. Rulați următorul cod pentru a implementa conceptul de asociere corect:

# import bibliotecă Pandas
import panda ca pd
produs = pd.DataFrame (
„ID_produs”: [101.102.103.104.105.106.107],
„Product_Name”: [„căști”, „Geantă”, „încălțăminte”, „Smartphone”, „Perie pentru dinți”, „ceas de mână”, „Laptop”],
„Categorie”: [„Electronică”, „Modă”, „Modă”, „Electronică”, „Băcănie”, „Modă”, „Electronică”],
„Preț”: [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City”: [„Islamabad”, „Lahore”, „Karachi”, „Rawalpindi”, „Islamabad”, „Karachi”, „Faisalabad”]
)
client = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_Name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „Asif”, „Maria”],
„Vârstă”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
„Produs_Cumpărat”: [„căști”, „NA”, „ceas de mână”, „NA”, „Încălțăminte”, „Smartphone”, „NA”, „NA”, „Laptop”],
„Customer_City”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karachi”, „Karachi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
tipărire (pd.merge (produs, client, pe = 'ID_produs', cum = 'corect'))

În următoarea captură de ecran, puteți vedea rezultatul după executarea codului de mai sus:

Alăturarea DataFrames utilizând funcția Concat ()

Două DataFrames pot fi unite folosind funcția concat. Sintaxa de bază a funcției de concatenare este dată mai jos:

pd.concat ([df_obj1, df_obj_2]))

Două obiecte DataFrames vor trece ca argumente.

Să ne alăturăm atât produsului DataFrames, cât și clientului prin intermediul funcției concat. Rulați următoarele linii de cod pentru a uni două DataFrames:

# import bibliotecă Pandas
import panda ca pd
produs = pd.DataFrame (
„ID_produs”: [101.102.103.104.105.106.107],
„Product_Name”: [„căști”, „Geantă”, „încălțăminte”, „Smartphone”, „Perie pentru dinți”, „ceas de mână”, „Laptop”],
„Categorie”: [„Electronică”, „Modă”, „Modă”, „Electronică”, „Băcănie”, „Modă”, „Electronică”],
„Preț”: [300.0,1000.50.2000.0,21999.0,145.0,1500.0,90999.0],
„Seller_City”: [„Islamabad”, „Lahore”, „Karachi”, „Rawalpindi”, „Islamabad”, „Karachi”, „Faisalabad”]
)
client = pd.DataFrame (
„ID”: [1,2,3,4,5,6,7,8,9],
„Customer_Name”: [„Sara”, „Sana”, „Ali”, „Raees”, „Mahwish”, „Umar”, „Mirha”, „Asif”, „Maria”],
„Vârstă”: [20,21,15,10,31,52,15,18,16],
„Product_ID”: [101,0,106,0,103,104,0,0,107],
„Produs_Cumpărat”: [„căști”, „NA”, „ceas de mână”, „NA”, „Încălțăminte”, „Smartphone”, „NA”, „NA”, „Laptop”],
„Customer_City”: [„Lahore”, „Islamabad”, „Faisalabad”, „Karachi”, „Karachi”, „Islamabad”, „Rawalpindi”, „Islamabad”,
„Lahore”]
)
tipărire (pd.concat ([produs, client]))

Concluzie:

În acest articol, am discutat despre implementarea funcției merge (), a funcțiilor concat () și a operațiunilor de îmbinare în python Pandas. Folosind metodele de mai sus, puteți alătura cu ușurință două DataFrames și învățat. cum să implementăm operațiunile de unire „interior, exterior, stânga și dreapta” în Pandas. Sperăm că acest tutorial vă va ghida în implementarea operațiunilor de asociere pe diferite tipuri de DataFrames. Vă rugăm să ne informați despre dificultățile dvs. în caz de eroare.

Top 5 cărți de captură a jocului
Cu toții am văzut și ne-au plăcut jocurile de streaming pe YouTube. PewDiePie, Jakesepticye și Markiplier sunt doar câțiva dintre cei mai buni jucător...
Cum să dezvolți un joc pe Linux
Acum un deceniu, nu mulți utilizatori de Linux ar fi prezis că sistemul lor de operare preferat va fi într-o zi o platformă populară de jocuri pentru ...
Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...