logo

Kako kombinirati dva podatkovna okvira u Python - Pandas

Pande

Pandas je ugrađena biblioteka u Python koja se koristi za rad s relacijskim podacima u programskom jeziku Python. Ima puno funkcija i struktura podataka koje pomažu u radu s relacijskim podacima.

Ako su podaci pohranjeni u obliku redaka i stupaca ili se dvodimenzionalni podaci općenito nazivaju podatkovnim okvirima u pandama.

Ako imamo dva podatkovna okvira, tada ih uz pomoć pandi možemo kombinirati ili spojiti u jedan podatkovni okvir. Pande pružaju postavljenu logiku za kombiniranje podataka dvaju različitih podatkovnih okvira, kao i logiku za njihovu usporedbu.

1. Korištenje funkcije concat().

U pythonu možemo spojiti dva podatkovna okvira uz pomoć funkcije concat() Pandas. Podatke možemo ulančati prema retku ili stupcu. Ova funkcija spaja podatke na jednoj osi (redak ili stupac) i izvodi postavljenu logiku na drugoj osi (drugi indeks).

Primjer:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'DEF', 'GHI'], 'Marks':[65,69,96,89]}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'Name': ['XYZ', 'TUV', 'MNO', 'JKL'], 'Marks':[56,96,69,98]}) frames = [dataFrame1, dataFrame2] result = pd.concat(frames) display(result) 

Izlaz:

Kako kombinirati dva podatkovna okvira u Python - Pandas

Obrazloženje:

U gornjem kodu prvo smo uvezli biblioteku Pandas u datoteku. Zatim smo stvorili dva podatkovna okvira gdje svaki podatkovni okvir sadrži tri stupca i četiri retka. Zatim smo upotrijebili funkciju concat, koja spaja ova dva podatkovna okvira redom, a s funkcijom prikaza ispisali smo ovo na ekranu.

2. Korištenje spojeva u pandama

Razumjeli smo koncept spajanja u bazi podataka gdje spajamo dvije tablice na temelju nekog zajedničkog atributa. Ista metoda primjenjiva je u ulančavanju podatkovnih okvira. U jednostavnoj metodi concat() spojili smo sve retke jedan na drugi i stvorili novi podatkovni okvir. U spoju definiramo koju vrstu spajanja želimo izvesti na tablici, da li je to unutarnje ili vanjsko spajanje. Bez obzira na vrstu spajanja, unutarnje spajanje (raskrižje) ili vanjsko spajanje (unija), definirat će se u atributu spajanja.

Primjer:

konvencija naziva java
 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=1, join='inner') display(result) 

Izlaz:

Kako kombinirati dva podatkovna okvira u Python - Pandas

Obrazloženje:

U gornjem kodu imamo dva daraframea koji oba sadrže dva stupca i četiri retka. Oba podatkovna okvira imaju različita imena stupaca, au funkciji concat() upotrijebili smo unutarnje spajanje koje zauzima dio presjeka.

U atributu osi smo inicijalizirali vrijednost jedan, tako da smo dobili cijele podatke.

Primjer:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'],'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

Izlaz:

preimenovanje imenika u linuxu
Kako kombinirati dva podatkovna okvira u Python - Pandas

Budući da nema zajedničkog atributa i primijenjeno je unutarnje spajanje, dobili smo prazan podatkovni okvir kao izlaz. Ako postoji zajednički atribut u oba podatkovna okvira:

Primjer:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

Izlaz:

Kako kombinirati dva podatkovna okvira u Python - Pandas

Obrazloženje:

U gornjem kodu imamo jedan atribut, 'id', koji je uobičajen tako da se podatkovni okvir stvara samo na temelju uobičajenih atributa.

3. Korištenje metode append().

Umjesto metode concat(), možemo koristiti metodu append(). Ova metoda append() primjenjuje se na jedan od podatkovnih okvira.

Primjer:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'City': ['JAIPUR', 'MANALI', 'NOIDA', 'LUCKNOW']}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['MUMBAI', 'UDAIPUR', 'RISHIKESH', 'KASHMIR']}) # append method result = dataFrame1.append(dataFrame2) display(result) 

Izlaz:

Kako kombinirati dva podatkovna okvira u Python - Pandas

Obrazloženje:

U gornjem kodu spojili smo dva podatkovna okvira pomoću metode dodavanja.