Kao analitičar podataka, često ćete se suočiti s potrebom kombiniranja više skupova podataka. To ćete morati učiniti kako biste dovršili svoju analizu i došli do zaključka za svoju tvrtku/dionike.
Često je izazovno predstaviti podatke kada su pohranjeni u različitim tablicama. U takvim okolnostima spojevi dokazuju svoju vrijednost, bez obzira na programskom jeziku na kojem radite.
Python spojevi su poput SQL spojeva: oni kombiniraju skupove podataka usklađivanjem njihovih redaka na zajedničkom indeksu.
Stvorite dva podatkovna okvira za referencu
Kako biste slijedili primjere u ovom vodiču, možete izraditi dva uzorka DataFramesa. Upotrijebite sljedeći kod za stvaranje prvog DataFramea koji sadrži ID, ime i prezime.
uvoz pande kao pd
a = pd. DataFrame({"iskaznica": ["001", "002", "003", "004", "005"],
"Fname": ["Rone", "Ivan", "Helen", "Jenny", "Kenny"],
"Ime": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Brijač"]})
ispisati(a)
Za prvi korak, uvezite pande knjižnica. Tada možete koristiti varijablu,
a, za pohranjivanje rezultata DataFrame konstruktora. Proslijedite konstruktoru rječnik koji sadrži vaše tražene vrijednosti.Na kraju, prikažite sadržaj DataFrame vrijednosti s funkcijom ispisa kako biste provjerili izgleda li sve kako biste očekivali.
Slično, možete stvoriti još jedan DataFrame, b, koji sadrži ID i vrijednosti plaće.
b = pd. DataFrame({"iskaznica": ["001", "002", "003", "004", "005"],
"Plaća": [100000, 700000, 80000, 904750, 604772]})
ispisati(b)
Možete provjeriti izlaz u konzoli ili IDE-u. Trebao bi potvrditi sadržaj vaših DataFramesa:
Kako se spojevi razlikuju od funkcije spajanja u Pythonu?
Biblioteka pandas jedna je od glavnih biblioteka koje možete koristiti za manipuliranje DataFramesima. Budući da DataFrames sadrži više skupova podataka, u Pythonu su dostupne razne funkcije za njihovo spajanje.
Python nudi funkcije spajanja i spajanja, između mnogih drugih, koje možete koristiti za kombiniranje DataFramesa. Postoji velika razlika između ove dvije funkcije, koju morate imati na umu prije korištenja bilo koje od njih.
Funkcija spajanja spaja dva DataFrame-a na temelju njihovih vrijednosti indeksa. The funkcija spajanja kombinira DataFrames na temelju vrijednosti indeksa i stupaca.
Što trebate znati o spojevima u Pythonu?
Prije rasprave o dostupnim vrstama pridruživanja, evo nekoliko važnih stvari koje treba napomenuti:
- SQL spojevi su jedna od najosnovnijih funkcija i prilično su slični Pythonovim spojevima.
- Da biste se pridružili DataFramesu, možete koristiti pande. DataFrame.join() metoda.
- Zadano spajanje izvodi lijevo spajanje, dok funkcija spajanja izvodi unutarnje spajanje.
Zadana sintaksa za Python spajanje je sljedeća:
DataFrame.join (other, on=None, how='lijevo/desno/unutarnje/vanjski', lsufiks='', rsufiks='',
poredaj=lažno)
Pozovite metodu spajanja na prvom DataFrameu i proslijedite drugom DataFrameu kao njegov prvi parametar, drugo. Preostali argumenti su:
- na, koji imenuje indeks kojem se treba pridružiti, ako postoji više od jednog.
- kako, koji definira vrstu spajanja, uključujući unutarnje, vanjsko, lijevo i desno.
- lsufiks, koji definira lijevi niz sufiksa vašeg naziva stupca.
- rsufiks, koji definira desni niz sufiksa naziva vašeg stupca.
- vrsta, što je booleova vrijednost koja označava treba li sortirati rezultirajući DataFrame.
Naučite koristiti razne vrste spajanja u Pythonu
Python ima nekoliko opcija pridruživanja, koje možete koristiti, ovisno o potrebi sata. Evo tipova spajanja:
1. Lijevo Pridružite se
Lijevo spajanje zadržava vrijednosti prvog DataFramea netaknutim, dok dovodi podudarne vrijednosti iz drugog. Na primjer, ako želite unijeti podudarne vrijednosti iz b, možete ga definirati na sljedeći način:
c = a.join (b, kako="lijevo", lsufiks = "_lijevo", rsufiks = "_pravo", sortiraj = Istina)
ispisati(c)
Kada se upit izvrši, izlaz sadrži sljedeće reference stupaca:
- ID_lijevo
- Fname
- Ime
- ID_desno
- Plaća
Ovo spajanje povlači prva tri stupca iz prvog DataFramea i posljednja dva stupca iz drugog DataFramea. Koristio je lsufiks i rsufiks vrijednosti za preimenovanje stupaca ID-a iz oba skupa podataka, osiguravajući jedinstvena imena rezultirajućih polja.
Izlaz je sljedeći:
2. Desno Pridružite se
Desno spajanje zadržava vrijednosti drugog DataFramea netaknutima, dok dovodi podudarne vrijednosti iz prve tablice. Na primjer, ako želite unijeti podudarne vrijednosti iz a, možete ga definirati na sljedeći način:
c = b.join (a, kako="pravo", lsufiks = "_pravo", rsufiks = "_lijevo", sortiraj = Istina)
ispisati(c)
Izlaz je sljedeći:
Ako pregledate kod, postoji nekoliko očitih promjena. Na primjer, rezultat uključuje stupce drugog DataFramea prije onih iz prvog DataFramea.
Trebali biste koristiti vrijednost od pravo za kako argument za određivanje desnog spajanja. Također imajte na umu kako možete promijeniti lsufiks i rsufiks vrijednosti koje odražavaju prirodu pravog spoja.
U svojim uobičajenim spojevima možda ćete češće koristiti lijeve, unutarnje i vanjske spojeve u usporedbi s desnim spojevima. Međutim, korištenje u potpunosti ovisi o vašim podatkovnim zahtjevima.
3. Unutarnje spajanje
Unutarnje spajanje isporučuje podudarne unose iz oba DataFramea. Budući da spajanja koriste brojeve indeksa za podudaranje redaka, unutarnje spajanje vraća samo retke koji se podudaraju. Za ovu ilustraciju upotrijebimo sljedeća dva DataFramesa:
a = pd. DataFrame({"iskaznica": ["001", "002", "003", "004", "005", "006", "007"],
"Fname": ["Rone", "Ivan", "Helen", "Jenny", "Kenny", "Daryl", "Cathy"],
"Ime": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Brijač", "Bačvar", "Nada"]})
b = pd. DataFrame({"iskaznica": ["001", "002", "003", "004", "005"],
"Plaća": [100000, 700000, 80000, 904750, 604772]})
ispisati(a)
ispisati(b)
Izlaz je sljedeći:
Možete koristiti unutarnje spajanje na sljedeći način:
c = a.join (b, lsufiks="_lijevo", rsufiks="_pravo", kako='unutarnji')
ispisati(c)
Rezultirajući izlaz sadrži samo retke koji postoje u oba ulazna okvira podataka:
4. Vanjski spoj
Vanjsko spajanje vraća sve vrijednosti iz oba DataFramea. Za retke bez podudarnih vrijednosti, proizvodi nultu vrijednost na pojedinačnim ćelijama.
Koristeći isti DataFrame kao gore, evo koda za vanjsko spajanje:
c = a.join (b, lsufiks="_lijevo", rsufiks="_pravo", kako='vanjski')
ispisati(c)
Korištenje spojeva u Pythonu
Spajanja, kao i njihove parne funkcije, spajanje i spajanje, nude mnogo više od jednostavne funkcije spajanja. S obzirom na niz opcija i funkcija, možete odabrati opcije koje odgovaraju vašim zahtjevima.
Rezultirajuće skupove podataka možete razvrstati relativno lako, sa ili bez funkcije spajanja, uz fleksibilne opcije koje nudi Python.