logo

Kaip sujungti du duomenų rėmus Python - Pandas

Pandos

Pandas yra integruota Python biblioteka, kuri naudojama dirbti su reliaciniais duomenimis Python programavimo kalba. Jis turi daug funkcijų ir duomenų struktūrų, kurios padeda atlikti reliacinių duomenų operacijas.

Jei duomenys saugomi eilučių ir stulpelių pavidalu arba dvimačiai duomenys pandose paprastai vadinami duomenų rėmeliais.

Jei turime du duomenų rėmelius, tai pandų pagalba galime juos sujungti arba sujungti į vieną duomenų rėmelį. Pandos pateikia nustatytą logiką, kad būtų galima sujungti dviejų skirtingų duomenų rėmelių duomenis, taip pat logika juos palyginti.

1. Concat() funkcijos naudojimas

Python, mes galime sujungti du duomenų rėmelius naudodami Pandas funkciją concat (). Duomenis galime sujungti pagal eilutes arba stulpelius. Ši funkcija sujungia duomenis vienoje ašyje (eilėje arba stulpelyje) ir atlieka nustatytą logiką kitoje ašyje (kitame indekse).

Pavyzdys:

 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) 

Išvestis:

Kaip sujungti du duomenų rėmus Python - Pandas

Paaiškinimas:

Pirmiau pateiktame kode mes pirmiausia importavome Pandas biblioteką į failą. Tada sukūrėme du duomenų rėmelius, kuriuose kiekviename duomenų rėmelyje yra trys stulpeliai ir keturios eilutės. Tada panaudojome concat funkciją, kuri sujungia šiuos du duomenų kadrus iš eilės, o naudodami rodymo funkciją atspausdinome tai ekrane.

2. Sujungimų naudojimas pandose

Mes supratome sujungimų sąvoką duomenų bazėje, kai sujungiame dvi lenteles pagal tam tikrą bendrą atributą. Tas pats metodas taikomas duomenų kadrų sujungimui. Naudodami paprastą concat () metodą, sujungėme visas eilutes viena ant kitos ir sukūrėme naują duomenų rėmelį. Sujungime apibrėžiame, kokio tipo sujungimą norime atlikti lentelėje, nesvarbu, ar tai vidinis sujungimas, ar išorinis sujungimas. Nepriklausomai nuo vidinio sujungimo (sankirtos) ar išorinio sujungimo (susijungimo) tipo, jis bus apibrėžtas sujungimo atribute.

Pavyzdys:

nginx
 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) 

Išvestis:

Kaip sujungti du duomenų rėmus Python - Pandas

Paaiškinimas:

Aukščiau pateiktame kode turime du daraframus, kuriuose yra du stulpeliai ir keturios eilutės. Abu duomenų rėmeliai turi skirtingus stulpelių pavadinimus, o funkcijoje concat () naudojome vidinį sujungimą, kuris užima sankirtos dalį.

Ašies atribute inicijavome vieną, todėl gavome visus duomenis.

Pavyzdys:

 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) 

Išvestis:

java sinchronizuoti
Kaip sujungti du duomenų rėmus Python - Pandas

Kadangi nėra bendro atributo ir buvo pritaikytas vidinis sujungimas, kaip išvestį gavome tuščią duomenų rėmelį. Jei abiejuose duomenų rėmeliuose yra bendras atributas:

Pavyzdys:

 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) 

Išvestis:

Kaip sujungti du duomenų rėmus Python - Pandas

Paaiškinimas:

Aukščiau pateiktame kode turime vieną atributą „id“, kuris yra įprastas, todėl duomenų rėmelis sukuriamas remiantis tik bendrais atributais.

3. Naudojant append() metodą

Vietoj concat() metodo galime naudoti append() metodą. Šis append() metodas taikomas vienam iš duomenų rėmelių.

Pavyzdys:

 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) 

Išvestis:

Kaip sujungti du duomenų rėmus Python - Pandas

Paaiškinimas:

Aukščiau pateiktame kode sujungėme du duomenų rėmelius naudodami pridėjimo metodą.