Rôzne typy spojení v Pandas

Rôzne typy spojení v Pandas

Modul Pandas obsahuje rôzne funkcie na vykonávanie rôznych operácií na dátových rámcoch, ako je spojenie, zreťazenie, odstránenie, pridanie atď. V tomto článku budeme diskutovať o rôznych typoch operácií spojenia, ktoré je možné vykonať na zariadeniach Pandas. Dataframe. Existuje päť typov spojení pandy .

  • Vnútorné spojenie
  • Ľavý vonkajší spoj
  • Pravé vonkajšie spojenie
  • Úplné vonkajšie spojenie alebo jednoducho vonkajšie spojenie
  • Indexové pripojenie

Aby sme pochopili rôzne typy spojení, najprv vytvoríme dva DataFrame, a to a a b .

Dátový rámec a:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # printing the dataframe> a>

Výkon:

DataFrame b:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # printing the dataframe> b>

Výkon:

Typy spojení v Pandas

Tieto dva dátové rámce použijeme na pochopenie rôznych typov spojení.

pandy Vnútorné spojenie

Vnútorné spojenie je najbežnejším typom spojenia, s ktorým budete pracovať. Vracia Dataframe iba s tými riadkami, ktoré majú spoločné charakteristiky. Je to podobné ako pri priesečníku dvoch množín.

Vnútorné spojenie Pandy

Príklad:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # inner join> df> => pd.merge(a, b, on> => 'id'> , how> => 'inner'> )> # display dataframe> df>

Výkon:

pandy Ľavé pripojenie

Pri ľavom vonkajšom spojení sa zobrazia všetky záznamy z prvého dátového rámca bez ohľadu na to, či kľúče v prvom dátovom rámci možno nájsť v druhom dátovom rámci. Zatiaľ čo pre druhý Dataframe sa zobrazia iba záznamy s kľúčmi v druhom Dataframe, ktoré možno nájsť v prvom Dataframe.

ľavé spojenie Príklad:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # left outer join> df> => pd.merge(a, b, on> => 'id'> , how> => 'left'> )> # display dataframe> df>

Výkon:

pandy Pravé vonkajšie spojenie

Pri správnom spojení sa zobrazia všetky záznamy z druhého dátového rámca. Zobrazia sa však iba záznamy s kľúčmi v prvom Dataframe, ktoré možno nájsť v druhom Dataframe.

Pandas Right Outer Join

Príklad:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # right outer join> df> => pd.merge(a, b, on> => 'id'> , how> => 'right'> )> # display dataframe> df>

Výkon:

pandy Úplné vonkajšie spojenie

Úplné vonkajšie spojenie vráti všetky riadky z ľavého dátového rámca a všetky riadky z pravého dátového rámca a podľa možnosti zhoduje riadky s NaN inde. Ale ak je Dataframe kompletný, potom dostaneme rovnaký výstup.

Pandas Full Outer Join

Príklad:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # full outer join> df> => pd.merge(a, b, on> => 'id'> , how> => 'outer'> )> # display dataframe> df>

Výkon:

Pripojte sa k indexu Pandas

Ak chcete zlúčiť Dataframe na indexoch, prejdite left_index a pravý_index argumenty ako True, t.j. oba dátové rámce sú zlúčené do indexu pomocou predvoleného vnútorného spojenia.

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a> => pd.DataFrame()> # Creating Dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 10> ,> 12> ],> > 'val1'> : [> 'a'> ,> 'b'> ,> 'c'> ,> 'd'> ]}> a> => pd.DataFrame(d)> # Creating dataframe b> b> => pd.DataFrame()> # Creating dictionary> d> => {> 'id'> : [> 1> ,> 2> ,> 9> ,> 8> ],> > 'val1'> : [> 'p'> ,> 'q'> ,> 'r'> ,> 's'> ]}> b> => pd.DataFrame(d)> # index join> df> => pd.merge(a, b, left_index> => True> , right_index> => True> )> # display dataframe> df>

Výkon: