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í:
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í:
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í:
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:
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)
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í.