pande

Kako se pridružiti okvirima podataka u Pandas Pythonu?

Kako se pridružiti okvirima podataka u Pandas Pythonu?
Pandas DataFrame je dvodimenzionalna (2D) struktura podataka koja je poravnata u tabličnom formatu. Ti se okviri podataka mogu kombinirati pomoću različitih metoda kao što su concat (), spajanje () i spajanja. Pande imaju visoke performanse i cjelovite operacije spajanja slične SQL relacijskoj bazi podataka. Koristeći funkciju spajanja, operacije spajanja mogu se implementirati između objekata DataFrames.

U ovom ćemo članku istražiti upotrebu funkcije spajanja, funkcije concat i različitih vrsta operacija spajanja u Pandas pythonu. Svi će se primjeri izvoditi putem uređivača pycharm. Krenimo s detaljima!

Upotreba funkcije spajanja

Osnovna uobičajena sintaksa funkcije merge () dana je u nastavku:

pd.spajanje (df_obj1, df_obj2, kako = 'unutarnji', on = Nijedan, lijevi_on = Nijedan, desni_on = Nema)

Objasnimo detalje parametara:

Prva dva df_obj1 i df_obj2 Argumenti su imena DataFrame objekata ili tablica.

"kakoParametar "koristi se za različite vrste operacija spajanja kao što su" lijevo, desno, vanjsko i unutarnje ". Funkcija spajanja prema zadanim postavkama koristi operaciju "unutarnjeg" spajanja.

Argument "na" sadrži naziv stupca na kojem se izvodi operacija spajanja. Ovaj stupac mora biti prisutan u oba DataFrame objekta.

U argumentima "left_on" i "right_on", "left_on" je naziv naziva stupca kao ključ u lijevom DataFrame-u. "Right_on" je naziv stupca koji se koristi kao ključ desnog DataFrame-a.

Da bismo razradili koncept pridruživanja DataFramesu, uzeli smo dva DataFrame objekta - proizvod i kupac. Sljedeći su detalji prisutni u DataFrame-u proizvoda:

proizvod = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalice', 'Torba', 'Cipele', 'Smartphone', 'četkica za zube', 'ručni sat', 'Laptop'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Namirnice', 'Moda', 'Elektronika'],
'Cijena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Grad prodavatelja': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)

Korisnički DataFrame sadrži sljedeće detalje:

kupac = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Korisničko ime': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Dob': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalice', 'NA', 'ručni sat', 'NA', 'Cipele', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)

Pridružite se okvirima podataka na ključu

Lako možemo pronaći proizvode koji se prodaju na mreži i kupce koji su ih kupili. Dakle, na temelju ključa "Product_ID", izvršili smo operaciju unutarnjeg spajanja na oba okvira podataka kako slijedi:

# uvezi knjižnicu Pandas
uvoziti pande kao pd
proizvod = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalice', 'Torba', 'Cipele', 'Smartphone', 'četkica za zube', 'ručni sat', 'Laptop'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Namirnice', 'Moda', 'Elektronika'],
'Cijena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Grad prodavatelja': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupac = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Korisničko ime': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Dob': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalice', 'NA', 'ručni sat', 'NA', 'Cipele', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Grad': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
ispis (pd.spajanje (proizvod, kupac, na = 'Product_ID'))

Sljedeći izlaz prikazuje se na prozoru nakon pokretanja gornjeg koda:

Ako su stupci različiti u oba okvira podataka, tada izričito napišite ime svakog stupca argumentima left_on i right_on kako slijedi:

uvoziti pande kao pd
proizvod = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalice', 'Torba', 'Cipele', 'Pametni telefon', 'četkica za zube', 'ručni sat', 'Laptop'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Namirnice', 'Moda', 'Elektronika'],
'Cijena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Grad prodavatelja': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupac = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Korisničko ime': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Dob': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalice', 'NA', 'ručni sat', 'NA', 'Cipele', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Grad': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
ispis (pd.spajanje (proizvod, kupac, left_on = 'Product_Name', right_on = 'Product_Purchased'))

Na ekranu će se prikazati sljedeći izlaz:

Pridružite se DataFrames-ima koristeći How Argument

U sljedećim primjerima objasnit ćemo četiri vrste operacija pridruživanja na Pandas DataFrames:

Unutarnje pridruživanje u Pandama

Možemo izvesti unutarnje spajanje na više tipki. Da biste prikazali više detalja o prodaji proizvoda, uzmite Product_ID, Seller_City iz proizvoda DataFrame i Product_ID i "Customer_City" iz korisničkog DataFramea kako biste utvrdili pripada li prodavatelj ili kupac istom gradu. Primijenite sljedeće retke koda:

# uvezi knjižnicu Pandas
uvoziti pande kao pd
proizvod = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalice', 'Torba', 'Cipele', 'Smartphone', 'četkica za zube', 'ručni sat', 'Laptop'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Namirnice', 'Moda', 'Elektronika'],
'Cijena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Grad prodavatelja': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupac = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Korisničko ime': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Dob': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalice', 'NA', 'ručni sat', 'NA', 'Cipele', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
ispis (pd.spajanje (proizvod, kupac, kako = 'unutarnji', left_on = ['Product_ID', 'Seller_City'], right_on = ['Product_ID', 'Customer_City']))

Sljedeći rezultat prikazuje se na prozoru nakon pokretanja gornjeg koda:

Potpuno / vanjsko spajanje u Pandama

Vanjska spajanja vraćaju i desnu i lijevu vrijednost DataFrames vrijednosti, koje imaju podudaranja. Dakle, da biste implementirali vanjsko spajanje, postavite argument "kako" kao vanjski. Izmijenimo gornji primjer korištenjem koncepta vanjskog spajanja. U donjem kodu vratit će sve vrijednosti i lijevog i desnog okvira podataka.

# uvezi knjižnicu Pandas
uvoziti pande kao pd
proizvod = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalice', 'Torba', 'Cipele', 'Pametni telefon', 'četkica za zube', 'ručni sat', 'Laptop'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Namirnice', 'Moda', 'Elektronika'],
'Cijena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Grad prodavatelja': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupac = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Korisničko ime': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Dob': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalice', 'NA', 'ručni sat', 'NA', 'Cipele', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
ispis (pd.spajanje (proizvod, kupac, na = 'Product_ID', kako = 'vanjski'))

Postavite argument indikatora na "True" s. Primijetit ćete da je novi stupac "_merge" dodan na kraju.

# uvezi knjižnicu Pandas
uvoziti pande kao pd
proizvod = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalice', 'Torba', 'Cipele', 'Pametni telefon', 'četkica za zube', 'ručni sat', 'Laptop'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Namirnice', 'Moda', 'Elektronika'],
'Cijena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Grad prodavatelja': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupac = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Korisničko ime': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Dob': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalice', 'NA', 'ručni sat', 'NA', 'Cipele', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
ispis (pd.spajanje (proizvod, kupac, na = 'Product_ID', kako = 'vanjski', pokazatelj = True))

Kao što možete vidjeti na donjoj snimci zaslona, ​​vrijednosti stupca spajanja objašnjavaju koji redak pripada kojem DataFrame-u.

Lijevo se pridružilo Pandama

Lijevo spajanje prikazuje samo retke lijevog DataFrame-a.  Sličan je vanjskom spoju. Dakle, promijenite vrijednost argumenta 'kako' s "lijevo". Isprobajte sljedeći kod za provedbu ideje o lijevom spajanju:

# uvezi knjižnicu Pandas
uvoziti pande kao pd
proizvod = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalice', 'Torba', 'Cipele', 'Pametni telefon', 'četkica za zube', 'ručni sat', 'Laptop'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Namirnice', 'Moda', 'Elektronika'],
'Cijena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Grad prodavatelja': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupac = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Korisničko ime': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Dob': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalice', 'NA', 'ručni sat', 'NA', 'Cipele', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
ispis (pd.spajanje (proizvod, kupac, na = 'Product_ID', kako = 'lijevo'))

Pravo se pridružite Pandama

Desno spajanje drži sve desne redove DataFramea udesno, zajedno s redovima koji su također uobičajeni u lijevom DataFrameu. U ovom je slučaju argument "kako" postavljen kao "ispravna" vrijednost. Pokrenite sljedeći kod za implementaciju ispravnog koncepta spajanja:

# uvezi knjižnicu Pandas
uvoziti pande kao pd
proizvod = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalice', 'Torba', 'Cipele', 'Pametni telefon', 'četkica za zube', 'ručni sat', 'Laptop'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Namirnice', 'Moda', 'Elektronika'],
'Cijena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Grad prodavatelja': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupac = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Korisničko ime': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Dob': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalice', 'NA', 'ručni sat', 'NA', 'Cipele', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
ispis (pd.spajanje (proizvod, kupac, na = 'Product_ID', kako = 'u redu'))

Na sljedećem snimku zaslona možete vidjeti rezultat nakon pokretanja gornjeg koda:

Spajanje okvira podataka pomoću funkcije Concat ()

Dva okvira podataka mogu se spojiti pomoću funkcije concat. Osnovna sintaksa funkcije spajanja dana je u nastavku:

pd.concat ([df_obj1, df_obj_2]))

Dva objekta DataFrames proslijedit će se kao argumenti.

Pridružimo se i DataFrames proizvodu i kupcu putem funkcije concat. Pokrenite sljedeće retke koda da biste spojili dva okvira podataka:

# uvezi knjižnicu Pandas
uvoziti pande kao pd
proizvod = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalice', 'Torba', 'Cipele', 'Smartphone', 'četkica za zube', 'ručni sat', 'Laptop'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Namirnice', 'Moda', 'Elektronika'],
'Cijena': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Grad prodavatelja': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupac = pd.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Korisničko ime': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Dob': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalice', 'NA', 'ručni sat', 'NA', 'Cipele', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
ispis (pd.concat ([proizvod, kupac]))

Zaključak:

U ovom smo članku raspravljali o implementaciji funkcije merge (), concat () i pridruživanja u Pandas python. Koristeći gornje metode, lako možete pridružiti dva okvira podataka i naučiti. kako implementirati operacije pridruživanja „unutarnje, vanjsko, lijevo i desno“ u Pandama. Nadamo se da će vas ovaj vodič voditi u provedbi operacija spajanja na različitim vrstama DataFrames-a. Obavijestite nas o svojim poteškoćama u slučaju bilo kakve pogreške.

Srednja tipka miša ne radi u sustavu Windows 10
The srednja tipka miša pomaže vam u pomicanju kroz dugačke web stranice i zaslone s puno podataka. Ako se to zaustavi, na kraju ćete koristiti tipkovn...
Kako promijeniti lijevu i desnu tipku miša na računalu sa sustavom Windows 10
Sasvim je normalno da su svi uređaji računalnog miša ergonomski dizajnirani za dešnjake. Ali postoje dostupni uređaji za miš koji su posebno dizajnira...
Emulirajte klikove mišem lebdeći mišem bez klika u sustavu Windows 10
Korištenje miša ili tipkovnice u pogrešnom držanju pretjerane upotrebe može rezultirati mnogim zdravstvenim problemima, uključujući naprezanje, sindro...