4 typy spojení DataFrame, ktoré ponúka knižnica pandas v Pythone

4 typy spojení DataFrame, ktoré ponúka knižnica pandas v Pythone

Ako dátový analytik budete často čeliť potrebe kombinovať viacero dátových množín. Budete to musieť urobiť, aby ste dokončili analýzu a dospeli k záveru pre vašu firmu/zainteresované strany.





Často je náročné reprezentovať údaje, keď sú uložené v rôznych tabuľkách. Za takýchto okolností spojenia preukážu svoju hodnotu, bez ohľadu na programovací jazyk, na ktorom pracujete.





VYUŽITIE VIDEA DŇA

Spojenia Pythonu sú ako spojenia SQL: kombinujú množiny údajov porovnávaním ich riadkov v spoločnom indexe.





Vytvorte dva dátové rámce pre referenciu

Ak chcete postupovať podľa príkladov v tejto príručke, môžete vytvoriť dva vzorové dátové rámce. Použite nasledujúci kód na vytvorenie prvého DataFrame, ktorý obsahuje ID, meno a priezvisko.

import pandas as pd 

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber"]})
print(a)

V prvom kroku importujte súbor pandy knižnica. Potom môžete použiť premennú, a , na uloženie výsledku z konštruktora DataFrame. Odovzdajte konštruktorovi slovník obsahujúci požadované hodnoty.



Nakoniec zobrazte obsah hodnoty DataFrame pomocou funkcie tlače, aby ste skontrolovali, či všetko vyzerá tak, ako by ste očakávali.

Podobne môžete vytvoriť ďalší DataFrame, b , ktorý obsahuje IČO a hodnoty mzdy.





b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"], 
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(b)

Výstup môžete skontrolovať v konzole alebo IDE. Mal by potvrdiť obsah vašich dátových rámov:

Ako sa spojenia líšia od funkcie zlúčenia v Pythone?

Knižnica pandas je jednou z hlavných knižníc, ktoré môžete použiť na manipuláciu s DataFrames. Keďže dátové rámce obsahujú viacero množín údajov, v Pythone sú k dispozícii rôzne funkcie na ich spojenie.





Python okrem mnohých iných ponúka funkcie spájania a spájania, ktoré môžete použiť na kombinovanie dátových rámov. Medzi týmito dvoma funkciami je priepastný rozdiel, ktorý musíte mať na pamäti pred použitím jednej z nich.

Funkcia spojenia spája dva dátové rámce na základe ich indexových hodnôt. The zlučovacia funkcia kombinuje DataFrames na základe hodnôt indexu a stĺpcov.

Čo potrebujete vedieť o spojeniach v Pythone?

Pred diskusiou o dostupných typoch spojení je potrebné poznamenať niekoľko dôležitých vecí:

  • SQL joins sú jednou z najzákladnejších funkcií a sú dosť podobné spojeniam Pythonu.
  • Ak sa chcete pripojiť k DataFrames, môžete použiť pandas.DataFrame.join() metóda.
  • Predvolené spojenie vykoná ľavé spojenie, zatiaľ čo funkcia zlúčenia vykoná vnútorné spojenie.

Predvolená syntax pre spojenie Python je nasledovná:

DataFrame.join(other, on=None, how='left/right/inner/outer', lsuffix='', rsuffix='', 
sort=False)

Vyvolajte metódu spojenia na prvom DataFrame a odovzdajte druhý DataFrame ako jeho prvý parameter, iné . Zvyšné argumenty sú:

  • na , ktorá pomenúva index, ku ktorému sa má pripojiť, ak ich existuje viac.
  • ako , ktorý definuje typ spojenia vrátane vnútorného, ​​vonkajšieho, ľavého a pravého.
  • lsufix , ktorý definuje ľavý reťazec prípony názvu vášho stĺpca.
  • rsufix , ktorý definuje pravý reťazec prípony názvu vášho stĺpca.
  • triediť , ktorý je boolovská hodnota označujúca, či sa má výsledný DataFrame triediť.

Naučte sa používať rôzne typy spojení v Pythone

Python má niekoľko možností pripojenia, ktoré môžete cvičiť v závislosti od potreby hodiny. Tu sú typy spojení:

1. Pripojenie vľavo

Ľavé spojenie zachováva hodnoty prvého DataFrame nedotknuté, zatiaľ čo prináša zodpovedajúce hodnoty z druhého. Napríklad, ak chcete priniesť zodpovedajúce hodnoty z b , môžete ho definovať takto:

c = a.join(b, how="left", lsuffix = "_left", rsuffix = "_right", sort = True) 
print(c)

Keď sa dotaz vykoná, výstup obsahuje nasledujúce odkazy na stĺpce:

  • ID_left
  • Fname
  • Lname
  • ID_right
  • Plat

Toto spojenie vytiahne prvé tri stĺpce z prvého DataFrame a posledné dva stĺpce z druhého DataFrame. To využilo lsufix a rsufix hodnoty na premenovanie stĺpcov ID z oboch množín údajov, čím sa zabezpečí, že výsledné názvy polí budú jedinečné.

Výstup je nasledovný:

  Kód zobrazujúci ľavé spojenie v Pythone's dataframes

2. Správne pripojenie

Pravé spojenie zachová hodnoty druhého DataFrame nedotknuté a zároveň prinesie zodpovedajúce hodnoty z prvej tabuľky. Napríklad, ak chcete priniesť zodpovedajúce hodnoty z a , môžete ho definovať takto:

c = b.join(a, how="right", lsuffix = "_right", rsuffix = "_left", sort = True) 
print(c)

Výstup je nasledovný:

  Kód zobrazujúci správne spojenie v Pythone's dataframes

Ak si prečítate kód, je tu niekoľko evidentných zmien. Napríklad výsledok obsahuje stĺpce druhého DataFrame pred stĺpcami z prvého DataFrame.

Mali by ste použiť hodnotu správny pre ako argument na určenie správneho spojenia. Všimnite si tiež, ako môžete prepnúť lsufix a rsufix hodnoty odrážať povahu správneho spojenia.

Vo svojich bežných spojeniach môžete zistiť, že používate ľavé, vnútorné a vonkajšie spojenia častejšie v porovnaní s pravým spojením. Využitie však úplne závisí od vašich požiadaviek na údaje.

3. Vnútorné spojenie

Vnútorné spojenie dodáva zhodné položky z oboch dátových rámcov. Keďže spojenia používajú na porovnávanie riadkov čísla indexu, vnútorné spojenie vráti iba zhodné riadky. Pre túto ilustráciu použijeme nasledujúce dva DataFrames:

rozdiel medzi airpodmi 1 a 2
a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005", "006", "007"], 
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny", "Daryl", "Cathy"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber", "Hooper", "Hope"]})
b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(a)
print(b)

Výstup je nasledovný:

  Vytvorte nové dátové rámce v Pythone

Vnútorné spojenie môžete použiť takto:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='inner') 
print(c)

Výsledný výstup obsahuje iba riadky, ktoré existujú v oboch vstupných DataFrame:

  Kód zobrazujúci vnútorné spojenie v Pythone's dataframes

4. Vonkajšie spojenie

Vonkajšie spojenie vráti všetky hodnoty z oboch DataFrame. Pre riadky bez zhodných hodnôt vytvorí v jednotlivých bunkách nulovú hodnotu.

Pri použití rovnakého DataFrame ako vyššie je kód pre vonkajšie spojenie:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='outer') 
print(c)
  Kód zobrazujúci vonkajšie spojenie v Pythone's dataframes

Používanie spojenia v Pythone

Spojenia, rovnako ako ich náprotivné funkcie, zlúčenie a spojenie, ponúkajú oveľa viac než len jednoduchú funkciu spojenia. Vzhľadom na jeho rad možností a funkcií si môžete vybrať možnosti, ktoré vyhovujú vašim požiadavkám.

Výsledné množiny údajov môžete triediť pomerne jednoducho, s funkciou spojenia alebo bez nej, s flexibilnými možnosťami, ktoré Python ponúka.