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.

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.

imports pandas  pd

a = pd. DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Fname": ["Rons", "Džons", "Helēna", "Dženija", "Kenijs"],
"Lname": ["Kīts", "Harley", "Smits", "Kers-Hislops", "Frizieris"]})
drukāta)

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"],
"Alga": [100000, 700000, 80000, 904750, 604772]})

drukāt(b)

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

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=Nav, kā='kreisais/labais/iekšējais/ārējais', lsfikss='', rsfikss='',
kārtot=Nepatiesi)

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 nosaka jūsu kolonnas nosaukuma kreiso sufiksa virkni.
  • rsfikss, kas nosaka kolonnas nosaukuma labo sufiksa virkni.
  • kārtot, kas ir Būla vērtība, kas norāda, vai ir jākārto iegūtais 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.pievienoties (b, kā="pa kreisi", lsfikss = "_pa kreisi", rsfikss = "_pa labi", kārtot = patiess)
drukātc)

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:

2. Pareizi pievienojies

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.pievienoties (a, kā="pa labi", lsfikss = "_pa labi", rsfikss = "_pa kreisi", kārtot = patiess)
drukātc)

Izvade ir šāda:

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šējā pievienošanās

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": ["Rons", "Džons", "Helēna", "Dženija", "Kenijs", "Derils", "Ketija"],
"Lname": ["Kīts", "Harley", "Smits", "Kers-Hislops", "Frizieris", "Hooper", "Ceru"]})
b = pd. DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Alga": [100000, 700000, 80000, 904750, 604772]})

drukāta)
drukāt(b)

Izvade ir šāda:

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

c = a.pievienoties (b, lsfikss="_pa kreisi", rsfikss="_pa labi", kā ='iekšējais')
drukātc)

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

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.pievienoties (b, lsfikss="_pa kreisi", rsfikss="_pa labi", kā ='ārējā')
drukātc)

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.