logo

Ako skombinovať dva dátové rámce v Pythone - Pandas

pandy

Pandas je vstavaná knižnica v Pythone, ktorá sa používa na prácu s relačnými údajmi v programovacom jazyku Python. Má veľa funkcií a dátových štruktúr, ktoré pomáhajú pri operáciách relačných dát.

Ak sú údaje uložené vo forme riadkov a stĺpcov alebo dvojrozmerných údajov, všeobecne sa v pandách nazývajú dátové rámce.

Ak máme dva dátové rámce, tak ich pomocou pand môžeme spojiť alebo zlúčiť do jedného dátového rámca. Pandy poskytujú nastavenú logiku na kombinovanie údajov dvoch rôznych dátových rámcov, ako aj logiku na ich porovnanie.

1. Použitie funkcie concat().

V pythone môžeme spojiť dva dátové rámce pomocou funkcie concat() Pandas. Dáta môžeme zreťaziť buď po riadkoch alebo po stĺpcoch. Táto funkcia spája údaje na jednej osi (riadok alebo stĺpec) a vykonáva nastavenú logiku na inej osi (iný index).

Príklad:

 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) 

Výkon:

Ako skombinovať dva dátové rámce v Pythone - Pandas

Vysvetlenie:

Vo vyššie uvedenom kóde sme najprv importovali knižnicu Pandas do súboru. Potom sme vytvorili dva dátové rámce, kde každý dátový rámec obsahuje tri stĺpce a štyri riadky. Potom sme použili funkciu concat, ktorá spája tieto dva dátové rámce po riadkoch, a pomocou funkcie zobrazenia sme to vytlačili na obrazovku.

2. Použitie joinov v pandách

Pochopili sme koncept spojení v databáze, kde spájame dve tabuľky na základe nejakého spoločného atribútu. Rovnaká metóda je použiteľná pri zreťazení dátových rámcov. V jednoduchej metóde concat() sme zlúčili všetky riadky na seba a vytvorili nový dátový rámec. V spojení definujeme, aký typ spojenia chceme na tabuľke vykonať, či ide o vnútorné spojenie alebo vonkajšie spojenie. Bez ohľadu na typ spojenia, vnútorné spojenie (priesečník) alebo vonkajšie spojenie (zjednotenie), bude definované v atribúte spojenia.

Príklad:

java porovnať reťazec
 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) 

Výkon:

Ako skombinovať dva dátové rámce v Pythone - Pandas

Vysvetlenie:

Vo vyššie uvedenom kóde máme dva daraframy, ktoré oba obsahujú dva stĺpce a štyri riadky. Oba dátové rámce majú rôzne názvy stĺpcov a vo funkcii concat() sme použili vnútorné spojenie, ktoré preberá časť priesečníka.

V atribúte axis sme inicializovali hodnotu jedna, dostali sme teda celé dáta.

Príklad:

 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) 

Výkon:

zapuzdrenie java
Ako skombinovať dva dátové rámce v Pythone - Pandas

Keďže neexistuje žiadny spoločný atribút a bolo použité vnútorné spojenie, potom sme dostali prázdny dátový rámec ako výstup. Ak je v oboch dátových rámcoch spoločný atribút:

Príklad:

 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) 

Výkon:

Ako skombinovať dva dátové rámce v Pythone - Pandas

Vysvetlenie:

Vo vyššie uvedenom kóde máme jeden atribút, 'id', ktorý je spoločný, takže dátový rámec je vytvorený iba na základe spoločných atribútov.

3. Použitie metódy append().

Namiesto metódy concat() môžeme použiť metódu append(). Táto metóda append() sa aplikuje na jeden z dátových rámcov.

Príklad:

 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) 

Výkon:

Ako skombinovať dva dátové rámce v Pythone - Pandas

Vysvetlenie:

Vo vyššie uvedenom kóde sme zlúčili dva dátové rámce pomocou metódy append.