Pandas je široko korišćena Python biblioteka u oblasti manipulacije i analize podataka. Pruža strukture podataka i funkcije potrebne za besprijekoran rad sa strukturiranim podacima. Jedna od mnogih karakteristika koje nudi je mogućnost spajanja tablica sa ne-jedinstvenim ključevima, što može biti uobičajen zahtjev u praktičnim primjenama. U ovom članku ćemo uroniti u rješenje ovog problema, istražiti korak-po-korak objašnjenje koda koji se koristi za spajanje pandas DataFrame objekata s ne-jedinstvenim ključevima i raspravljati o bibliotekama i funkcijama uključenim u ovaj proces.
Uvod
Spajanje tabela je osnovna operacija koja se izvodi u zadacima manipulacije podacima i analize. U određenim scenarijima, od nas se može tražiti da spojimo tabele na nejedinstvenom ključu, što može predstavljati izazove. Međutim, rad sa moćnom Python bibliotekom, pandas, omogućava nam da elegantno riješimo ovaj problem koristeći njegovu fleksibilnu funkcionalnost.
Spajanje Pandas DataFrames-a s ne-jedinstvenim ključevima
Da bismo spojili DataFrames u pandama, možemo koristiti funkciju `merge()`, koja podržava spajanje na ne-jedinstvenim ključevima. Međutim, bitno je razumjeti da rezultat spajanja nejedinstvenih ključeva može biti drugačiji od očekivanog, jer može dovesti do kartezijanskog proizvoda, potencijalno rezultirajući značajnim povećanjem broja redova u rezultirajućem DataFrameu.
Evo korak-po-korak vodiča za korištenje funkcije `merge()` za spajanje okvira podataka s ne-jedinstvenim ključevima:
import pandas as pd # Create sample DataFrames df1 = pd.DataFrame({"key": ["A", "B", "A", "C"], "value": [1, 2, 3, 4]}) df2 = pd.DataFrame({"key": ["A", "B", "A", "D"], "value2": [5, 6, 7, 8]}) # Perform the merge operation result = df1.merge(df2, on="key", how="inner")
U gornjem primjeru, prvo uvozimo biblioteku pandas i kreiramo dva uzorka okvira podataka (df1 i df2). Zatim koristimo funkciju `merge()` da spojimo okvire podataka u stupcu "ključ", koji sadrži nejedinstvene vrijednosti (A i B se ponavljaju). Parametar `how` je postavljen na "unutrašnji", jer želimo zadržati samo redove koji imaju podudarne ključeve u oba okvira podataka.
Razumijevanje Pandas Merge funkcije
Funkcija `merge()` u pandama je vrlo moćan i fleksibilan alat za izvođenje operacija spajanja tablice. Pored spajanja DataFrame-a sa ne-jedinstvenim ključevima, podržava različite nivoe prilagođavanja, omogućavajući vam potpunu kontrolu nad rezultirajućim DataFrame-om.
Funkcija `merge()` ima nekoliko važnih parametara kao što su:
- lijevo i u pravu: Ovo su okviri podataka koji se spajaju.
- on: Kolona(e) koja se treba koristiti za spajanje okvira podataka. Ovo može biti naziv jednog stupca ili lista naziva kolona kada se spaja na više kolona.
- kako: Definira tip spajanja koje treba izvesti. Opcije uključuju 'lijevo', 'desno', 'vanjsko' i 'unutrašnje'. Zadana postavka je 'unutrašnja'.
- sufiksi: Ovo je niz sufiksa niza koji se primjenjuju na kolone koji se preklapaju. Zadani sufiks je _x za lijevi okvir podataka i _y za desni okvir podataka.
Ovi parametri se mogu podesiti prema vašim potrebama za izvođenje različitih vrsta operacija spajanja i prilagođavanje izlaza.
Slične funkcije u Pandas
Osim funkcije `merge()`, pandas nudi i druge funkcije za kombiniranje okvira podataka na različite načine, kao što su:
- concat(): Ova funkcija se koristi za spajanje okvira podataka duž određene ose. Možete kontrolirati konkatenaciju specificiranjem različitih parametara kao što su os, spoj i ključevi.
- pridruži se (): Ovo je zgodna metoda dostupna na objektima DataFrame za izvođenje operacija spajanja. To je u suštini omotač oko funkcije merge(), pri čemu se levi DataFrame pretpostavlja kao DataFrame pozivaoca.
U zaključku, korištenjem pandas `merge()` funkcije, možete lako pridružiti DataFrames ne-jedinstvenim ključevima. Bogat skup parametara dostupnih u funkciji `merge()` nudi potpunu kontrolu nad procesom spajanja, zadovoljavajući različite zahtjeve manipulacije podacima. Pandas biblioteka i dalje ostaje nezamjenjiv alat za analitičare podataka i nudi razne druge funkcije za učinkovito kombiniranje i manipulaciju DataFrameima.