4 vrste spajanja DataFramea koje nudi Pythonova biblioteka pandas

4 vrste spajanja DataFramea koje nudi Pythonova biblioteka pandas

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.





MAKEUSEOF VIDEO DANA

Python spojevi su poput SQL spojeva: oni kombiniraju skupove podataka usklađivanjem njihovih redaka na zajedničkom indeksu.





kako mogu besplatno saznati kome pripada telefonski broj?

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.

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)

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({"ID": ["001", "002", "003", "004", "005"], 
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(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 pandas.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='left/right/inner/outer', lsuffix='', rsuffix='', 
sort=False)

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 tip 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 , koji je booleov koji pokazuje 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živanje

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, how="left", lsuffix = "_left", rsuffix = "_right", sort = True) 
print(c)

Kada se upit izvrši, izlaz sadrži sljedeće reference stupaca:

kako prenijeti hd video na facebook sa androida
  • 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:

  Kod koji prikazuje lijevo spajanje u Pythonu's dataframes

2. Pravo pridruživanje

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, how="right", lsuffix = "_right", rsuffix = "_left", sort = True) 
print(c)

Izlaz je sljedeći:

  Kod koji prikazuje desno spajanje u Pythonu's dataframes

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. Unutarnji spoj

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({"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)

Izlaz je sljedeći:

  Stvorite nove podatkovne okvire u Pythonu

Možete koristiti unutarnje spajanje na sljedeći način:

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

Rezultirajući izlaz sadrži samo retke koji postoje u oba ulazna podatkovna okvira:

što znači sljedeće na facebooku
  Kod koji prikazuje unutarnje spajanje u Pythonu's dataframes

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, lsuffix="_left", rsuffix="_right", how='outer') 
print(c)
  Kod koji prikazuje vanjsko spajanje u Pythonu's dataframes

Korištenje spojeva u Pythonu

Spajanja, poput njihovih par funkcija, spajanja i spajanja, 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 sortirati relativno lako, sa ili bez funkcije spajanja, uz fleksibilne opcije koje nudi Python.