logo

Kako združiti dva podatkovna okvira v Python - Pandas

Pande

Pandas je vgrajena knjižnica v Python, ki se uporablja za delo z relacijskimi podatki v programskem jeziku Python. Ima veliko funkcij in podatkovnih struktur, ki pomagajo pri delovanju relacijskih podatkov.

Če so podatki shranjeni v obliki vrstic in stolpcev ali dvodimenzionalnih podatkov, se v pandah običajno imenujejo podatkovni okviri.

Če imamo dva podatkovna okvira, potem ju lahko s pomočjo pand združimo ali združimo v en sam podatkovni okvir. Pande zagotavljajo nastavljeno logiko za združevanje podatkov dveh različnih podatkovnih okvirov in logiko za njuno primerjavo.

1. Uporaba funkcije concat().

V pythonu lahko združimo dva podatkovna okvira s pomočjo funkcije concat() Pandas. Podatke lahko združimo bodisi po vrsticah bodisi po stolpcih. Ta funkcija združuje podatke na eni osi (vrstica ali stolpec) in izvaja nastavljeno logiko na drugi osi (drugi indeks).

primer:

 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) 

Izhod:

Kako združiti dva podatkovna okvira v Python - Pandas

Pojasnilo:

V zgornji kodi smo najprej uvozili knjižnico Pandas v datoteko. Nato smo ustvarili dva podatkovna okvira, kjer vsak podatkovni okvir vsebuje tri stolpce in štiri vrstice. Nato smo uporabili funkcijo concat, ki združi ta dva podatkovna okvira po vrsticah, s funkcijo prikaza pa smo to natisnili na zaslon.

2. Uporaba združevanj v pandah

Razumeli smo koncept združevanj v bazi podatkov, kjer združimo dve tabeli na podlagi nekega skupnega atributa. Ista metoda je uporabna pri veriženju podatkovnih okvirov. V preprosti metodi concat() smo združili vse vrstice eno v drugo in ustvarili nov podatkovni okvir. V spajanju določimo, katero vrsto spajanja želimo izvajati na tabeli, ali gre za notranje ali zunanje spajanje. Ne glede na vrsto spoja, bodisi notranji spoj (presek) ali zunanji spoj (unija), bo definiran v atributu spoja.

primer:

sortirni niz v Javi
 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) 

Izhod:

Kako združiti dva podatkovna okvira v Python - Pandas

Pojasnilo:

V zgornji kodi imamo dva daraframea, ki vsebujeta dva stolpca in štiri vrstice. Oba podatkovna okvira imata različna imena stolpcev, v funkciji concat() pa smo uporabili notranjo združitev, ki prevzame presečni del.

V atributu osi smo inicializirali vrednost ena, tako da smo dobili celotne podatke.

primer:

 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) 

Izhod:

zamenjaj niz v Javi
Kako združiti dva podatkovna okvira v Python - Pandas

Ker ni skupnega atributa in je bilo uporabljeno notranje združevanje, smo kot izhod dobili prazen podatkovni okvir. Če je v obeh podatkovnih okvirih skupen atribut:

primer:

 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) 

Izhod:

Kako združiti dva podatkovna okvira v Python - Pandas

Pojasnilo:

V zgornji kodi imamo en atribut, 'id', ki je skupen, zato je podatkovni okvir ustvarjen samo na podlagi skupnih atributov.

3. Uporaba metode append().

Namesto metode concat() lahko uporabimo metodo append(). Ta metoda append() se uporabi za enega od podatkovnih okvirjev.

primer:

 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) 

Izhod:

Kako združiti dva podatkovna okvira v Python - Pandas

Pojasnilo:

V zgornji kodi smo z metodo dodajanja združili dva podatkovna okvira.