4 typy spojení DataFrame, které nabízí knihovna pandas v Pythonu

4 typy spojení DataFrame, které nabízí knihovna pandas v Pythonu

Jako datový analytik budete často čelit potřebě kombinovat více datových sad. Budete to muset udělat, abyste dokončili analýzu a dospěli k závěru pro vaši firmu/zainteresované strany.





jak přehrávat snímky Google na smyčce

Reprezentovat data, když jsou uložena v různých tabulkách, je často náročné. Za takových okolností spojení prokážou svou hodnotu, bez ohledu na programovací jazyk, na kterém pracujete.





VYUŽÍVÁNÍ VIDEA DNE

Spojení Pythonu jsou jako spojení SQL: kombinují datové sady tak, že se shodují jejich řádky na společném indexu.





Vytvořte dva datové rámce pro referenci

Chcete-li se řídit příklady v této příručce, můžete vytvořit dva vzorové datové rámce. Pomocí následujícího kódu vytvořte první DataFrame, který obsahuje ID, jméno a příjmení.

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 prvním kroku importujte soubor pandy knihovna. Poté můžete použít proměnnou, A , k uložení výsledku z konstruktoru DataFrame. Předejte konstruktoru slovník obsahující požadované hodnoty.



Nakonec zobrazte obsah hodnoty DataFrame pomocí funkce tisku, abyste ověřili, že vše vypadá tak, jak byste očekávali.

Podobně můžete vytvořit další DataFrame, b , která obsahuje ID a hodnoty platu.





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

print(b)

Výstup můžete zkontrolovat v konzole nebo IDE. Měl by potvrdit obsah vašich datových rámců:

Jak se spojení liší od funkce sloučení v Pythonu?

Knihovna pandas je jednou z hlavních knihoven, které můžete použít k manipulaci s DataFrames. Vzhledem k tomu, že DataFrames obsahují více datových sad, jsou v Pythonu k dispozici různé funkce pro jejich spojení.





Python nabízí funkce spojení a sloučení, mezi mnoha dalšími, které můžete použít ke kombinování DataFrames. Mezi těmito dvěma funkcemi je propastný rozdíl, který musíte mít na paměti před použitím jedné z nich.

Funkce spojení spojuje dva DataFrame na základě jejich indexových hodnot. The funkce sloučení kombinuje DataFrames na základě hodnot indexu a sloupců.

Co potřebujete vědět o spojeních v Pythonu?

Než probereme dostupné typy spojení, je třeba si uvědomit několik důležitých věcí:

  • SQL joiny jsou jednou z nejzákladnějších funkcí a jsou docela podobné spojením Pythonu.
  • Chcete-li se připojit k DataFrames, můžete použít pandas.DataFrame.join() metoda.
  • Výchozí spojení provádí levé spojení, zatímco funkce sloučení provádí vnitřní spojení.

Výchozí syntaxe pro spojení Python je následující:

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

Vyvolejte metodu spojení na prvním DataFrame a předejte druhý DataFrame jako jeho první parametr, jiný . Zbývající argumenty jsou:

  • na , který pojmenovává index, ke kterému se má připojit, pokud jich je více.
  • jak , který definuje typ spojení, včetně vnitřního, vnějšího, levého a pravého.
  • lsufix , který definuje levý řetězec přípony názvu vašeho sloupce.
  • rsufix , který definuje pravý řetězec přípony názvu vašeho sloupce.
  • seřadit , který je logická hodnota udávající, zda se má výsledný DataFrame třídit.

Naučte se používat různé typy spojení v Pythonu

Python má několik možností připojení, které můžete cvičit v závislosti na potřebě hodiny. Zde jsou typy spojení:

1. Připojit se vlevo

Levé spojení zachovává hodnoty prvního DataFrame nedotčené, zatímco přináší odpovídající hodnoty z druhého. Pokud například chcete přenést odpovídající hodnoty z b , můžete jej definovat následovně:

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

Když se dotaz spustí, výstup obsahuje následující odkazy na sloupce:

  • ID_left
  • Fname
  • Ljméno
  • ID_right
  • Plat

Toto spojení vytáhne první tři sloupce z prvního DataFrame a poslední dva sloupce z druhého DataFrame. To využilo lsufix a rsufix hodnoty k přejmenování sloupců ID z obou datových sad, čímž zajistíte, že výsledné názvy polí budou jedinečné.

Výstup je následující:

  Kód zobrazující levé spojení v Pythonu's dataframes

2. Správné připojení

Pravé spojení zachovává hodnoty druhého DataFrame nedotčené, zatímco přináší odpovídající hodnoty z první tabulky. Pokud například chcete přenést odpovídající hodnoty z A , můžete jej definovat následovně:

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

Výstup je následující:

  Kód zobrazující správné spojení v Pythonu's dataframes

Pokud se podíváte na kód, existuje několik zjevných změn. Výsledek například zahrnuje sloupce druhého DataFrame před sloupci z prvního DataFrame.

spojte obrázky a vytvořte jeden

Měli byste použít hodnotu že jo pro jak argument pro určení správného spojení. Všimněte si také, jak můžete přepnout lsufix a rsufix hodnoty odrážející povahu správného spojení.

Ve svých běžných spojeních můžete zjistit, že používáte levé, vnitřní a vnější spojení častěji než spojení pravé. Využití však zcela závisí na vašich požadavcích na data.

3. Vnitřní spojení

Vnitřní spojení dodává odpovídající položky z obou datových rámců. Vzhledem k tomu, že spojení používají čísla indexu ke shodě řádků, vnitřní spojení vrací pouze řádky, které se shodují. Pro tuto ilustraci použijme následující dva DataFrames:

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 následující:

  Vytvářejte nové datové rámce v Pythonu

Vnitřní spojení můžete použít následovně:

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

Výsledný výstup obsahuje pouze řádky, které existují v obou vstupních DataFrames:

  Kód zobrazující vnitřní spojení v Pythonu's dataframes

4. Vnější spojení

Vnější spojení vrátí všechny hodnoty z obou datových rámců. U řádků bez odpovídajících hodnot vytvoří v jednotlivých buňkách hodnotu null.

Pomocí stejného DataFrame jako výše je kód pro vnější spojení:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='outer') 
print(c)
  Kód zobrazující vnější spojení v Pythonu's dataframes

Použití spojení v Pythonu

Spojení, stejně jako jejich protějšky, slučování a spojování, nabízejí mnohem více než jen jednoduchou funkci spojení. Vzhledem k řadě možností a funkcí si můžete vybrat možnosti, které splňují vaše požadavky.

Výsledné datové sady můžete třídit poměrně snadno, s funkcí join nebo bez ní, s flexibilními možnostmi, které Python nabízí.