pande

Kako se pridružiti podatkovnim okvirjem v Pandas Python?

Kako se pridružiti podatkovnim okvirjem v Pandas Python?
Pandas DataFrame je dvodimenzionalna (2D) podatkovna struktura, ki je poravnana v tabelarni obliki. Te okvirje podatkov je mogoče kombinirati z različnimi metodami, kot so concat (), merge () in združevanja. Pande imajo visoko zmogljivost in popolnoma združene operacije združevanja, ki so podobne relacijski bazi podatkov SQL. S funkcijo spajanja je mogoče med objektoma DataFrames izvajati operacije združevanja.

V tem članku bomo raziskali uporabo funkcije spajanja, funkcije concat in različne vrste operacij združevanja v Pandas python. Vsi primeri se bodo izvajali prek urejevalnika pycharm. Začnimo s podrobnostmi!

Uporaba funkcije spajanja

Osnovna pogosto uporabljena sintaksa funkcije merge () je podana spodaj:

pd.spajanje (df_obj1, df_obj2, kako = 'notranje', on = Brez, left_on = Noben, right_on = Noben)

Pojasnimo podrobnosti parametrov:

Prva dva df_obj1 in df_obj2 Argumenti so imena predmetov ali tabel DataFrame.

kakoParameter "se uporablja za različne vrste operacij združevanja, kot so" levo, desno, zunanje in notranje ". Funkcija spajanja privzeto uporablja operacijo »notranjega« združevanja.

Argument »Vklopljeno« vsebuje ime stolpca, na katerem se izvede operacija združevanja. Ta stolpec mora biti prisoten v obeh objektih DataFrame.

V argumentih "left_on" in "right_on" je "left_on" ime imena stolpca kot ključ v levem DataFrame. "Right_on" je ime stolpca, ki se uporablja kot ključ desnega podatkovnega okvira.

Za podrobnejšo predstavitev koncepta pridružitve DataFrames smo vzeli dva predmeta DataFrame - izdelek in kupec. V podatkovnem okviru izdelka so naslednje podrobnosti:

izdelek = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalke', 'Torba', 'Čevlji', 'Pametni telefon', 'Ščetka za zobe', 'zapestna ura', 'Prenosnik'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Živila', 'Moda', 'Elektronika'],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)

Stranka DataFrame vsebuje naslednje podrobnosti:

kupec = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Starost“: [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalke', 'NA', 'zapestna ura', 'NA', 'Čevlji', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)

Pridružite se okvirjem DataFrames na ključu

Z lahkoto najdemo izdelke, ki se prodajajo po spletu, in kupce, ki so jih kupili. Tako smo na podlagi ključa »Product_ID« izvedli operacijo notranjega združevanja na obeh DataFrames, kot sledi:

# uvozi knjižnico Pandas
uvozi pande kot pd
izdelek = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalke', 'Torba', 'Čevlji', 'Pametni telefon', 'Ščetka za zobe', 'zapestna ura', 'Prenosnik'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Živila', 'Moda', 'Elektronika'],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupec = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Starost“: [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalke', 'NA', 'zapestna ura', 'NA', 'Čevlji', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Mesto': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tiskanje (pd.spajanje (izdelek, stranka, na = 'ID_izdelka'))

Po zagonu zgornje kode se v oknu prikaže naslednji izhod:

Če se stolpca v obeh DataFrames razlikujeta, ime vsakega stolpca izrecno napišite z argumentoma left_on in right_on, kot sledi:

uvozi pande kot pd
izdelek = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalke', 'Torba', 'Čevlji', 'Pametni telefon', 'Ščetka za zobe', 'zapestna ura', 'Prenosnik'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Živila', 'Moda', 'Elektronika'],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupec = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Starost“: [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalke', 'NA', 'zapestna ura', 'NA', 'Čevlji', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Mesto': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tiskanje (pd.spajanje (izdelek, stranka, left_on = 'Product_Name', right_on = 'Product_Purchased'))

Na zaslonu se prikaže naslednji izhod:

Pridružite se DataFrames z uporabo How Argument

V naslednjih primerih bomo razložili štiri vrste operacij združevanja na Pandas DataFrames:

Notranje pridružitev v Pandah

Na več tipkah lahko izvedemo notranje združevanje. Če želite prikazati več podrobnosti o prodaji izdelka, vzemite Product_ID, Seller_City iz izdelka DataFrame in Product_ID in “Customer_City” od stranke DataFrame, da ugotovite, ali prodajalec ali kupec pripada istemu mestu. Izvedite naslednje vrstice kode:

# uvozi knjižnico Pandas
uvozi pande kot pd
izdelek = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalke', 'Torba', 'Čevlji', 'Pametni telefon', 'Ščetka za zobe', 'zapestna ura', 'Prenosnik'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Živila', 'Moda', 'Elektronika'],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupec = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Starost“: [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalke', 'NA', 'zapestna ura', 'NA', 'Čevlji', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tiskanje (pd.spajanje (izdelek, stranka, kako = 'notranja', left_on = ['Product_ID', 'Seller_City'], right_on = ['Product_ID', 'Customer_City']))

Po zagonu zgornje kode se v oknu prikaže naslednji rezultat:

Popolno / zunanje združevanje v Pandah

Zunanja združevanja vrnejo tako desno kot levo vrednost DataFrames, ki se ujemata. Za izvedbo zunanjega združevanja nastavite argument »kako« kot zunanji. Spremenimo zgornji primer z uporabo koncepta zunanjega združevanja. V spodnji kodi bo vrnil vse vrednosti levega in desnega okvira podatkov.

# uvozi knjižnico Pandas
uvozi pande kot pd
izdelek = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalke', 'Torba', 'Čevlji', 'Pametni telefon', 'Ščetka za zobe', 'zapestna ura', 'Prenosnik'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Živila', 'Moda', 'Elektronika'],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupec = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Starost“: [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalke', 'NA', 'zapestna ura', 'NA', 'Čevlji', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tiskanje (pd.spajanje (izdelek, stranka, on = 'Product_ID', how = 'external'))

Argument kazalnika nastavite na "True" s. Opazili boste, da je na koncu dodan nov stolpec "_merge".

# uvozi knjižnico Pandas
uvozi pande kot pd
izdelek = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalke', 'Torba', 'Čevlji', 'Pametni telefon', 'Ščetka za zobe', 'zapestna ura', 'Prenosnik'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Živila', 'Moda', 'Elektronika'],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupec = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Starost“: [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalke', 'NA', 'zapestna ura', 'NA', 'Čevlji', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tiskanje (pd.spajanje (izdelek, stranka, on = 'Product_ID', kako = 'zunanji', kazalnik = True))

Kot lahko vidite na spodnjem posnetku zaslona, ​​vrednosti stolpcev za spajanje pojasnjujejo, katera vrstica pripada kateremu DataFrame-u.

Levo Pridružite se v Pandah

Levo združi le prikazne vrstice levega okvira DataFrame.  Podobno je zunanjemu spoju. Torej spremenite vrednost argumenta »kako« z »levo«. Preizkusite naslednjo kodo, da uresničite idejo Left join:

# uvozi knjižnico Pandas
uvozi pande kot pd
izdelek = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalke', 'Torba', 'Čevlji', 'Pametni telefon', 'Ščetka za zobe', 'zapestna ura', 'Prenosnik'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Živila', 'Moda', 'Elektronika'],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupec = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Starost“: [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalke', 'NA', 'zapestna ura', 'NA', 'Čevlji', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tiskanje (pd.spajanje (izdelek, stranka, na = 'Product_ID', kako = 'levo'))

Pridružite se Pandam

Desno združevanje ohrani vse desne vrstice DataFrame na desni, skupaj z vrsticami, ki so pogoste tudi v levem DataFrame. V tem primeru je argument "kako" nastavljen kot "prava" vrednost. Za izvedbo pravilnega koncepta združevanja zaženite naslednjo kodo:

# uvozi knjižnico Pandas
uvozi pande kot pd
izdelek = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalke', 'Torba', 'Čevlji', 'Pametni telefon', 'Ščetka za zobe', 'zapestna ura', 'Prenosnik'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Živila', 'Moda', 'Elektronika'],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupec = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Starost“: [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalke', 'NA', 'zapestna ura', 'NA', 'Čevlji', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tiskanje (pd.spajanje (izdelek, stranka, na = 'Product_ID', kako = 'desno'))

Na naslednjem posnetku zaslona lahko vidite rezultat po zagonu zgornje kode:

Združevanje podatkovnih okvirov s pomočjo funkcije Concat ()

Dva okvirja podatkov lahko združite s pomočjo funkcije concat. Osnovna sintaksa funkcije združevanja je podana spodaj:

pd.concat ([df_obj1, df_obj_2]))

Dva predmeta DataFrames bosta podana kot argumenta.

Pridružimo se izdelku DataFrames in stranki s pomočjo funkcije concat. Zaženite naslednje vrstice kode, da združite dva okvirja podatkov:

# uvozi knjižnico Pandas
uvozi pande kot pd
izdelek = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['slušalke', 'Torba', 'Čevlji', 'Pametni telefon', 'Ščetka za zobe', 'zapestna ura', 'Prenosnik'],
'Kategorija': ['Elektronika', 'Moda', 'Moda', 'Elektronika', 'Živila', 'Moda', 'Elektronika'],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
kupec = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Starost“: [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['slušalke', 'NA', 'zapestna ura', 'NA', 'Čevlji', 'Pametni telefon', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
tiskanje (pd.concat ([izdelek, kupec]))

Zaključek:

V tem članku smo razpravljali o izvajanju funkcije merge (), concat () in pridruževanja v Pandas python. Z uporabo zgornjih metod lahko enostavno združite dva okvirja DataFrames in se naučite. kako v operacijah Pandas izvesti operacije Združevanja "notranja, zunanja, leva in desna". Upajmo, da vas bo ta vadnica vodila pri izvajanju operacij združevanja na različnih vrstah DataFrames. V primeru kakršne koli napake nam sporočite svoje težave.

Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...
Posnemajte klike miške tako, da v Windows 10 lebdite z miško Clickless Mouse
Uporaba miške ali tipkovnice v napačni drži čezmerne uporabe lahko povzroči veliko zdravstvenih težav, vključno s sevom, sindromom karpalnega kanala i...
S temi brezplačnimi orodji dodajte gibe miške v sistem Windows 10
V zadnjih letih so se računalniki in operacijski sistemi močno razvili. Včasih so morali uporabniki uporabljati ukaze za krmarjenje po upraviteljih da...