Različne vrste združevanj v Pandas

Različne vrste združevanj v Pandas

Modul Pandas vsebuje različne funkcije za izvajanje različnih operacij na podatkovnih okvirih, kot so združevanje, združevanje, brisanje, dodajanje itd. V tem članku bomo razpravljali o različnih vrstah operacij združevanja, ki jih je mogoče izvesti na Pandas Dataframe. Obstaja pet vrst pridružitev Pande .

  • Notranja pridružitev
  • Levi zunanji spoj
  • Desni zunanji spoj
  • Full Outer Join ali preprosto Outer Join
  • Kazalo Pridružite se

Da bi razumeli različne vrste združevanj, bomo najprej naredili dva podatkovna okvira, in sicer a in b .

Podatkovni okvir 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>

Izhod:

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>

Izhod:

Vrste združevanj v Pandas

Ta dva podatkovna okvira bomo uporabili za razumevanje različnih vrst združevanj.

Pande Notranja pridružitev

Notranja združitev je najpogostejša vrsta združitve, s katero boste delali. Vrne Dataframe samo s tistimi vrsticami, ki imajo skupne značilnosti. To je podobno preseku dveh množic.

Pandas Inner Join

primer:

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>

Izhod:

Pande Levo Pridružite se

Z levim zunanjim združevanjem bodo prikazani vsi zapisi iz prvega podatkovnega okvira, ne glede na to, ali je ključe v prvem podatkovnem okvirju mogoče najti v drugem podatkovnem okvirju. Medtem ko bodo za drugi podatkovni okvir prikazani samo zapisi s ključi v drugem podatkovnem okvirju, ki jih je mogoče najti v prvem podatkovnem okvirju.

levo-pridruži se primer:

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>

Izhod:

Pande Desni zunanji spoj

Za desno združevanje bodo prikazani vsi zapisi iz drugega okvira podatkov. Vendar pa bodo prikazani samo zapisi s ključi v prvem podatkovnem okvirju, ki jih je mogoče najti v drugem podatkovnem okvirju.

Pandas Right Outer Join

primer:

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>

Izhod:

Pande Popoln zunanji spoj

Popolno zunanje združevanje vrne vse vrstice iz levega okvira podatkov in vse vrstice iz desnega okvira podatkov ter ujema vrstice, kjer je to mogoče, z NaN-ji drugje. Toda če je podatkovni okvir dokončan, dobimo enak rezultat.

Pandas Full Outer Join

primer:

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>

Izhod:

Pandas Index Pridružite se

Če želite združiti podatkovni okvir na indeksih, prenesite levi_indeks in desni_indeks argumenti kot True, tj. oba podatkovna okvirja sta združena v indeks s privzetim notranjim združevanjem.

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>

Izhod: