logo

Różne typy połączeń w Pandach

Moduł Pandas zawiera różne funkcje umożliwiające wykonywanie różnych operacji na ramkach danych, takich jak łączenie, łączenie, usuwanie, dodawanie itp. W tym artykule omówimy różne typy operacji łączenia, które można wykonać na Pandach Ramka danych. Istnieje pięć typów złączeń Pandy .

  • Połączenie wewnętrzne
  • Lewe połączenie zewnętrzne
  • Prawe połączenie zewnętrzne
  • Pełne łączenie zewnętrzne lub po prostu łączenie zewnętrzne
  • Indeks Dołącz

Aby zrozumieć różne typy złączeń, najpierw utworzymy dwie ramki danych, a mianowicie A I B .



Ramka danych:

tablica vs lista tablic

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>

>

>

Wyjście:

Ramka danych 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>

>

>

Wyjście:

Rodzaje złączeń w Pandach

Użyjemy tych dwóch ramek danych, aby zrozumieć różne typy złączeń.

Pandy Połączenie wewnętrzne

Sprzężenie wewnętrzne jest najczęstszym rodzajem złączenia, z którym będziesz pracować. Zwraca ramkę danych zawierającą tylko te wiersze, które mają wspólne cechy. Przypomina to przecięcie dwóch zbiorów.

Wewnętrzne połączenie pand

Przykład:

Python3




Zainicjuj listę Pythona
# 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>

>

>

Wyjście:

Pandy Lewe dołączenie

W przypadku lewego sprzężenia zewnętrznego zostaną wyświetlone wszystkie rekordy z pierwszej ramki danych, niezależnie od tego, czy klucze z pierwszej ramki danych można znaleźć w drugiej ramce danych. Natomiast w przypadku drugiej ramki danych zostaną wyświetlone tylko rekordy z kluczami z drugiej ramki danych, które można znaleźć w pierwszej ramce danych.

połączenie lewe Przykład:

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>

>

>

Wyjście:

Pandy Prawe połączenie zewnętrzne

W przypadku prawego złączenia zostaną wyświetlone wszystkie rekordy z drugiej ramki danych. Jednakże zostaną wyświetlone tylko rekordy z kluczami w pierwszej ramce danych, które można znaleźć w drugiej ramce danych.

Pandy Prawe złącze zewnętrzne

Przykład:

Python3




wydruk Javy

# 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>

>

>

Wyjście:

Pandy Pełne połączenie zewnętrzne

Pełne sprzężenie zewnętrzne zwraca wszystkie wiersze z lewej ramki danych i wszystkie wiersze z prawej ramki danych oraz dopasowuje wiersze, jeśli to możliwe, z NaN w innym miejscu. Ale jeśli ramka danych jest kompletna, otrzymamy ten sam wynik.

Pełne połączenie zewnętrzne pand

Przykład:

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>

>

>

Wyjście:

Dołącz do indeksu Pand

Aby scalić ramkę danych z indeksami, przekaż lewy_indeks I prawy_indeks argumenty jako True, tj. obie ramki danych są łączone w indeksie przy użyciu domyślnego łączenia wewnętrznego.

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>

>

>

wyszukiwanie BFS

Wyjście: