pandy

Ako sa pripojiť k údajovým rámcom v Pandas Python?

Ako sa pripojiť k údajovým rámcom v Pandas Python?
Pandas DataFrame je dvojrozmerná (2D) dátová štruktúra, ktorá je zarovnaná do tabuľkového formátu. Tieto dátové rámce je možné kombinovať pomocou rôznych metód, ako napríklad concat (), merge () a spojenia. Pandy majú vysoký výkon a plne funkčné operácie spojenia, ktoré sa podobajú na relačnú databázu SQL. Pomocou funkcie zlúčenia je možné implementovať operácie spojenia medzi objektmi DataFrames.

V tomto článku sa budeme venovať použitiu funkcií zlúčenia, funkcie concat a rôznych typov operácií spojenia v Pandas python. Všetky príklady sa vykonajú prostredníctvom editora pycharm. Začnime podrobnosťami!

Použitie funkcie zlúčenia

Nižšie je uvedená základná bežne používaná syntax funkcie merge ():

pd.zlúčiť (df_obj1, df_obj2, how = 'internal', on = None, left_on = None, right_on = None)

Vysvetlíme si podrobnosti parametrov:

Prví dvaja df_obj1 a df_obj2 argumenty sú názvy objektov alebo tabuliek DataFrame.

akoParameter sa používa pre rôzne typy operácií spojenia, ako napríklad „ľavý, pravý, vonkajší a vnútorný“. Funkcia zlúčenia predvolene používa operáciu „vnútorného“ spojenia.

Tvrdenie „Na“ obsahuje názov stĺpca, na ktorom sa vykonáva operácia spojenia. Tento stĺpec musí byť v obidvoch objektoch DataFrame.

V argumentoch „left_on“ a „right_on“ je „left_on“ názov názvu stĺpca ako kľúča v ľavom DataFrame. „Right_on“ je názov stĺpca použitého ako kľúč z pravého dátového rámca.

Na rozpracovanie koncepcie spojenia s DataFrames sme vzali dva objekty DataFrame - produkt a zákazník. V dátovom rámci produktu sú uvedené nasledujúce podrobnosti:

produkt = pd.DataFrame (
„Product_ID“: [101 102 103 103 104 105 106 107],
„Product_Name“: [„slúchadlá“, „taška“, „topánky“, „smartphone“, „kefka na zuby“, „náramkové hodinky“, „notebook“],
„Kategória“: [„Elektronika“, „Móda“, „Móda“, „Elektronika“, „Potraviny“, „Móda“, „Elektronika“],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)

Zákaznícky DataFrame obsahuje nasledujúce podrobnosti:

zákazník = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vek“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„slúchadlá“, „NA“, „náramkové hodinky“, „NA“, „topánky“, „Smartphone“, „NA“, „NA“, „laptop“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Lahore“]
)

Pripojte sa k DataFrames na kľúči

Ľahko nájdeme výrobky predávané online a zákazníkov, ktorí si ich kúpili. Takže na základe kľúča „Product_ID“ sme vykonali operáciu vnútorného spojenia na oboch DataFrames nasledovne:

# importovať knižnicu Pandas
importovať pandy ako pd
produkt = pd.DataFrame (
„Product_ID“: [101 102 103 103 104 105 106 107],
„Product_Name“: [„slúchadlá“, „taška“, „topánky“, „smartphone“, „kefka na zuby“, „náramkové hodinky“, „notebook“],
„Kategória“: [„Elektronika“, „Móda“, „Móda“, „Elektronika“, „Potraviny“, „Móda“, „Elektronika“],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
zákazník = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vek“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„slúchadlá“, „NA“, „náramkové hodinky“, „NA“, „topánky“, „Smartphone“, „NA“, „NA“, „laptop“],
„Mesto“: [„Láhaur“, „Islamabad“, „Faisalabad“, „Karáčí“, „Karáčí“, „Islamabad“, „Rawalpindi“, „Islamabad“,
„Lahore“]
)
tlač (pd.zlúčiť (produkt, zákazník, on = 'Product_ID'))

Po spustení vyššie uvedeného kódu sa v okne zobrazí nasledujúci výstup:

Ak sú stĺpce odlišné v oboch údajových rámcoch, potom explicitne napíšte názov každého stĺpca pomocou argumentov left_on a right_on takto:

importovať pandy ako pd
produkt = pd.DataFrame (
„ID_produktu“: [101 102 103 103 104 105 106 106],
„Product_Name“: [„slúchadlá“, „taška“, „topánky“, „smartphone“, „kefka na zuby“, „náramkové hodinky“, „notebook“],
„Kategória“: [„Elektronika“, „Móda“, „Móda“, „Elektronika“, „Potraviny“, „Móda“, „Elektronika“],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
zákazník = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vek“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„slúchadlá“, „NA“, „náramkové hodinky“, „NA“, „topánky“, „Smartphone“, „NA“, „NA“, „laptop“],
„Mesto“: [„Láhaur“, „Islamabad“, „Faisalabad“, „Karáči“, „Karáči“, „Islamabad“, „Rawalpindi“, „Islamabad“,
„Lahore“]
)
tlač (pd.zlúčiť (produkt, zákazník, left_on = 'Product_Name', right_on = 'Product_Purchased'))

Na obrazovke sa zobrazí nasledujúci výstup:

Pripojte sa k údajovým rámcom pomocou argumentu How Argument

V nasledujúcich príkladoch si vysvetlíme štyri typy operácií spojenia na Pandas DataFrames:

Vnútorné Pripojte sa k Pandám

Vnútorné spojenie môžeme vykonať na viacerých klávesoch. Ak chcete zobraziť viac podrobností o predaji produktu, vezmite z parametra ProductFID, Seller_City z produktu DataFrame a Product_ID a výraz „Customer_City“ z dátového rámca zákazníka, aby ste zistili, že predajca alebo zákazník patrí do rovnakého mesta. Implementujte nasledujúce riadky kódu:

# importovať knižnicu Pandas
importovať pandy ako pd
produkt = pd.DataFrame (
„ID_produktu“: [101 102 103 103 104 105 106 106],
„Product_Name“: [„slúchadlá“, „taška“, „topánky“, „smartphone“, „kefka na zuby“, „náramkové hodinky“, „notebook“],
„Kategória“: [„Elektronika“, „Móda“, „Móda“, „Elektronika“, „Potraviny“, „Móda“, „Elektronika“],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
zákazník = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vek“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„slúchadlá“, „NA“, „náramkové hodinky“, „NA“, „topánky“, „Smartphone“, „NA“, „NA“, „laptop“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Lahore“]
)
tlač (pd.zlúčiť (produkt, zákazník, how = 'internal', left_on = ['Product_ID', 'Seller_City'], right_on = ['Product_ID', 'Customer_City']))

Po spustení vyššie uvedeného kódu sa v okne zobrazí nasledujúci výsledok:

Úplné / vonkajšie spojenie v pandách

Vonkajšie spojenia vrátia pravé aj ľavé hodnoty DataFrames, ktoré majú buď zhody. Takže, aby ste implementovali vonkajšie spojenie, nastavte argument „ako“ ako vonkajší. Upravme vyššie uvedený príklad pomocou konceptu vonkajšieho spojenia. V nižšie uvedenom kóde vráti všetky hodnoty ľavého aj pravého údajového rámca.

# importovať knižnicu Pandas
importovať pandy ako pd
produkt = pd.DataFrame (
„ID_produktu“: [101 102 103 103 104 105 106 106],
„Product_Name“: [„slúchadlá“, „taška“, „topánky“, „smartphone“, „kefka na zuby“, „náramkové hodinky“, „notebook“],
„Kategória“: [„Elektronika“, „Móda“, „Móda“, „Elektronika“, „Potraviny“, „Móda“, „Elektronika“],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
zákazník = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vek“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„slúchadlá“, „NA“, „náramkové hodinky“, „NA“, „topánky“, „Smartphone“, „NA“, „NA“, „laptop“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Lahore“]
)
tlač (pd.zlúčiť (produkt, zákazník, on = 'Product_ID', how = 'vonkajší'))

Nastavte argument indikátora na „True“ s. Všimnete si, že na koniec je pridaný nový stĺpec „_merge“.

# importovať knižnicu Pandas
importovať pandy ako pd
produkt = pd.DataFrame (
„ID_produktu“: [101 102 103 103 104 105 106 106],
„Product_Name“: [„slúchadlá“, „taška“, „topánky“, „smartphone“, „kefka na zuby“, „náramkové hodinky“, „notebook“],
„Kategória“: [„Elektronika“, „Móda“, „Móda“, „Elektronika“, „Potraviny“, „Móda“, „Elektronika“],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
zákazník = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vek“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„slúchadlá“, „NA“, „náramkové hodinky“, „NA“, „topánky“, „Smartphone“, „NA“, „NA“, „laptop“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Lahore“]
)
tlač (pd.zlúčiť (produkt, zákazník, on = 'Product_ID', how = 'vonkajší', indikátor = True))

Ako môžete vidieť na nasledujúcej snímke obrazovky, hodnoty stĺpca zlúčenia vysvetľujú, ktorý riadok patrí ktorému DataFrame.

Vľavo Pripojte sa k Pandám

Ľavé spojenie zobrazí iba riadky ľavého údajového rámca.  Je to podobné ako pri vonkajšom spojení. Takže zmeňte hodnotu argumentu „ako“ na „doľava“. Vyskúšajte nasledujúci kód na implementáciu myšlienky Left join:

# importovať knižnicu Pandas
importovať pandy ako pd
produkt = pd.DataFrame (
„ID_produktu“: [101 102 103 103 104 105 106 106],
„Product_Name“: [„slúchadlá“, „taška“, „topánky“, „smartphone“, „kefka na zuby“, „náramkové hodinky“, „notebook“],
„Kategória“: [„Elektronika“, „Móda“, „Móda“, „Elektronika“, „Potraviny“, „Móda“, „Elektronika“],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
zákazník = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vek“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„slúchadlá“, „NA“, „náramkové hodinky“, „NA“, „topánky“, „Smartphone“, „NA“, „NA“, „laptop“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Lahore“]
)
tlač (pd.zlúčiť (produkt, zákazník, on = 'Product_ID', how = 'left'))

Správne sa pripojte k pandám

Pravé spojenie udržuje všetky správne riadky DataFrame vpravo spolu s riadkami, ktoré sú bežné aj v ľavom DataFrame. V tomto prípade je argument „ako“ nastavený ako „správna“ hodnota. Spustením nasledujúceho kódu implementujte koncept správneho spojenia:

# importovať knižnicu Pandas
importovať pandy ako pd
produkt = pd.DataFrame (
„ID_produktu“: [101 102 103 103 104 105 106 106],
„Product_Name“: [„slúchadlá“, „taška“, „topánky“, „smartphone“, „kefka na zuby“, „náramkové hodinky“, „notebook“],
„Kategória“: [„Elektronika“, „Móda“, „Móda“, „Elektronika“, „Potraviny“, „Móda“, „Elektronika“],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
zákazník = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vek“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„slúchadlá“, „NA“, „náramkové hodinky“, „NA“, „topánky“, „Smartphone“, „NA“, „NA“, „laptop“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Lahore“]
)
tlač (pd.merge (product, customer, on = 'Product_ID', how = 'right'))

Na nasledujúcej snímke obrazovky môžete vidieť výsledok po spustení vyššie uvedeného kódu:

Pripojenie DataFrames pomocou funkcie Concat ()

Dva dátové rámce je možné spojiť pomocou funkcie concat. Základná syntax zreťazovacej funkcie je uvedená nižšie:

pd.concat ([df_obj1, df_obj_2]))

Ako argumenty prejdú dva objekty DataFrames.

Spojme produkt DataFrames aj zákazníka prostredníctvom funkcie concat. Spustením nasledujúcich riadkov kódu spojte dva údajové rámce:

# importovať knižnicu Pandas
importovať pandy ako pd
produkt = pd.DataFrame (
„ID_produktu“: [101 102 103 103 104 105 106 106],
„Product_Name“: [„slúchadlá“, „taška“, „topánky“, „smartphone“, „kefka na zuby“, „náramkové hodinky“, „notebook“],
„Kategória“: [„Elektronika“, „Móda“, „Móda“, „Elektronika“, „Potraviny“, „Móda“, „Elektronika“],
„Cena“: [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
zákazník = pd.DataFrame (
„ID“: [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
„Vek“: [20,21,15,10,31,52,15,18,16],
„Product_ID“: [101,0,106,0,103,104,0,0,107],
„Product_Purchased“: [„slúchadlá“, „NA“, „náramkové hodinky“, „NA“, „topánky“, „Smartphone“, „NA“, „NA“, „laptop“],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
„Lahore“]
)
tlač (pd.concat ([produkt, zákazník]))

Záver:

V tomto článku sme diskutovali o implementácii funkcií merge (), concat () a spojenia v Pandas python. Pomocou vyššie uvedených metód môžete ľahko spojiť dva dátové rámce a naučiť sa. ako implementovať operácie spojenia „vnútorné, vonkajšie, ľavé a pravé“ v Pandas. Dúfajme, že vás tento návod prevedie implementáciou operácií spojenia na rôznych typoch údajových rámcov. Dajte nám vedieť o vašich problémoch v prípade akejkoľvek chyby.

Ako zmeniť ľavé a pravé tlačidlo myši na počítači so systémom Windows 10
Je úplnou normou, že všetky zariadenia počítačových myší sú ergonomicky navrhnuté pre pravákov. Existujú však dostupné myšacie zariadenia, ktoré sú šp...
Napodobňovanie kliknutí myšou vznášaním sa pomocou myši bez myši vo Windows 10
Používanie myši alebo klávesnice v nesprávnom postoji k nadmernému používaniu môže mať za následok veľa zdravotných problémov vrátane napätia, syndróm...
Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...