Python pandu bibliotēkas piedāvātie 4 DataFrame savienojumu veidi

Python pandu bibliotēkas piedāvātie 4 DataFrame savienojumu veidi

Kā datu analītiķis jūs bieži saskarsities ar nepieciešamību apvienot vairākas datu kopas. Tas būs jādara, lai pabeigtu analīzi un nonāktu pie secinājuma savam uzņēmumam/ieinteresētajām personām.





Bieži vien ir grūti attēlot datus, kad tie tiek glabāti dažādās tabulās. Šādos apstākļos savienojumi pierāda savu vērtību neatkarīgi no programmēšanas valodas, ar kuru strādājat.





DIENAS VIDEO MAKEUSEOF

Python savienojumi ir līdzīgi SQL savienojumiem: tie apvieno datu kopas, saskaņojot to rindas kopējā rādītājā.





Izveidojiet divus datu rāmjus atsaucei

Lai sekotu šajā rokasgrāmatā sniegtajiem piemēriem, varat izveidot divus DataFrame paraugus. Izmantojiet šo kodu, lai izveidotu pirmo DataFrame, kurā ir ID, vārds un uzvārds.

import pandas as pd 

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber"]})
print(a)

Lai veiktu pirmo darbību, importējiet pandas bibliotēka. Pēc tam varat izmantot mainīgo, a , lai saglabātu rezultātu no DataFrame konstruktora. Nododiet konstruktoram vārdnīcu, kurā ir jūsu vajadzīgās vērtības.



Visbeidzot, parādiet DataFrame vērtības saturu, izmantojot drukas funkciju, lai pārbaudītu, vai viss izskatās tā, kā jūs gaidāt.

Līdzīgi varat izveidot citu DataFrame, b , kas satur ID un algas vērtības.





b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"], 
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(b)

Varat pārbaudīt izvadi konsolē vai IDE. Tam vajadzētu apstiprināt jūsu DataFrames saturu:

kā izdzēst paziņojumus facebook android

Kā savienojumi atšķiras no sapludināšanas funkcijas Python?

Pandas bibliotēka ir viena no galvenajām bibliotēkām, ko varat izmantot, lai manipulētu ar DataFrames. Tā kā DataFrames satur vairākas datu kopas, Python ir pieejamas dažādas funkcijas, lai tām pievienotos.





Python piedāvā savienošanas un sapludināšanas funkcijas, kā arī daudzas citas, kuras varat izmantot datu rāmju apvienošanai. Starp šīm divām funkcijām ir būtiska atšķirība, kas jums jāpatur prātā, pirms izmantojat kādu no tām.

Savienošanas funkcija savieno divus DataFrame, pamatojoties uz to indeksa vērtībām. The sapludināšanas funkcija apvieno DataFrames pamatojoties uz indeksa vērtībām un kolonnām.

Kas jums jāzina par pievienošanos Python?

Pirms apspriest pieejamos savienojumu veidus, jāņem vērā dažas svarīgas lietas:

  • SQL pievienošanās ir viena no visvienkāršākajām funkcijām un ir diezgan līdzīgi Python pievienojumiem.
  • Lai pievienotos DataFrames, varat izmantot pandas.DataFrame.join() metodi.
  • Noklusējuma savienojums veic kreiso savienojumu, bet sapludināšanas funkcija veic iekšējo savienojumu.

Python savienojuma noklusējuma sintakse ir šāda:

DataFrame.join(other, on=None, how='left/right/inner/outer', lsuffix='', rsuffix='', 
sort=False)

Izsaukt savienojuma metodi pirmajā DataFrame un nodot otro DataFrame kā tā pirmo parametru, cits . Atlikušie argumenti ir:

  • ieslēgts , kas nosauc indeksu, kuram pievienoties, ja ir vairāk nekā viens.
  • , kas nosaka savienojuma veidu, tostarp iekšējo, ārējo, kreiso un labo.
  • lsufikss , kas definē kolonnas nosaukuma kreisās sufiksa virkni.
  • rsfikss , kas definē kolonnas nosaukuma labo sufiksa virkni.
  • kārtot , kas ir Būla vērtība, kas norāda, vai kārtot iegūto DataFrame.

Uzziniet, kā lietot dažādus savienojumu veidus programmā Python

Python ir dažas pievienošanās iespējas, kuras varat izmantot atkarībā no stundas nepieciešamības. Šeit ir norādīti savienojuma veidi:

1. Pa kreisi pievienoties

Kreisais savienojums saglabā pirmās DataFrame vērtības neskartas, vienlaikus ienesot atbilstošās vērtības no otrā. Piemēram, ja vēlaties ienest atbilstošās vērtības no b , varat to definēt šādi:

c = a.join(b, how="left", lsuffix = "_left", rsuffix = "_right", sort = True) 
print(c)

Kad vaicājums tiek izpildīts, izvade satur šādas kolonnas atsauces:

  • ID_left
  • Fname
  • Lname
  • ID_right
  • Alga

Šis savienojums izvelk pirmās trīs kolonnas no pirmā DataFrame un pēdējās divas kolonnas no otrā DataFrame. Tā ir izmantojusi lsufikss un rsfikss vērtības, lai pārdēvētu ID kolonnas no abām datu kopām, nodrošinot, ka iegūtie lauku nosaukumi ir unikāli.

Izvade ir šāda:

  Kods, kas parāda kreiso pievienošanos Python's dataframes

2. Labā pievienošanās

Labajā savienojumā netiek saglabātas otrā DataFrame vērtības, vienlaikus ienesot atbilstošās vērtības no pirmās tabulas. Piemēram, ja vēlaties ienest atbilstošās vērtības no a , varat to definēt šādi:

c = b.join(a, how="right", lsuffix = "_right", rsuffix = "_left", sort = True) 
print(c)

Izvade ir šāda:

  Kods, kas parāda pareizo pievienošanos Python's dataframes

Pārskatot kodu, tajā ir dažas acīmredzamas izmaiņas. Piemēram, rezultāts ietver otrā DataFrame kolonnas pirms kolonnas no pirmā DataFrame.

Jums vajadzētu izmantot vērtību pa labi priekš arguments, lai norādītu pareizo savienojumu. Ņemiet vērā arī to, kā varat pārslēgt lsufikss un rsfikss vērtības, lai atspoguļotu pareizā savienojuma būtību.

Regulārajos savienojumos, iespējams, biežāk izmantojat kreiso, iekšējo un ārējo savienojumu, salīdzinot ar labo savienojumu. Tomēr lietojums ir pilnībā atkarīgs no jūsu datu prasībām.

3. Iekšējais savienojums

Iekšējais savienojums nodrošina atbilstošos ierakstus no abiem DataFrames. Tā kā savienojumos tiek izmantoti indeksa skaitļi, lai saskaņotu rindas, iekšējais savienojums atgriež tikai atbilstošās rindas. Šajā ilustrācijā izmantosim divus šādus DataFrame:

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005", "006", "007"], 
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny", "Daryl", "Cathy"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber", "Hooper", "Hope"]})
b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(a)
print(b)

Izvade ir šāda:

  Izveidojiet jaunus datu rāmjus programmā Python

Jūs varat izmantot iekšējo savienojumu šādi:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='inner') 
print(c)

Iegūtā izvade satur tikai rindas, kas pastāv abos ievades datu rāmjos:

  Kods, kas parāda iekšējo pievienošanos Python's dataframes

4. Ārējais savienojums

Ārējais savienojums atgriež visas vērtības no abiem DataFrames. Rindām bez atbilstošām vērtībām tas rada nulles vērtību atsevišķās šūnās.

Izmantojot to pašu DataFrame, kas norādīts iepriekš, lūk, ārējā savienojuma kods:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='outer') 
print(c)
  Kods, kas parāda ārējo savienojumu Python's dataframes

Savienojumu izmantošana programmā Python

Savienojumi, tāpat kā to līdzvērtīgās funkcijas, sapludināšana un savienošana, piedāvā daudz vairāk nekā vienkārša savienošanas funkcionalitāte. Ņemot vērā tā opciju un funkciju virkni, varat izvēlēties opcijas, kas atbilst jūsu prasībām.

Izmantojot Python piedāvātās elastīgās opcijas, varat salīdzinoši viegli kārtot iegūtās datu kopas ar vai bez savienošanas funkcijas.