logo

Diferents tipus d'unions en pandes

El mòdul Pandas conté diverses funcions per realitzar diverses operacions en Dataframes com unir, concatenar, suprimir, afegir, etc. En aquest article, parlarem dels diferents tipus d'operacions d'unió que es poden realitzar a Pandas. Marc de dades. Hi ha cinc tipus d'unions Pandes .

  • Combinació interna
  • Unió exterior esquerra
  • Unió exterior dreta
  • Unió externa completa o simplement unió externa
  • Unir-se a l'índex

Per entendre els diferents tipus d'unions, primer farem dos DataFrames, és a dir a i b .



Marc de dades a:

Python 3








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

>

>

Sortida:

DataFrame b:

Python 3




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

>

>

Sortida:

variable java variable

Tipus d'unions a Pandas

Utilitzarem aquests dos marcs de dades per entendre els diferents tipus d'unions.

Pandes Combinació interna

La unió interna és el tipus d'unió més comú amb què treballareu. Retorna un Dataframe amb només aquelles files que tenen característiques comunes. Això és similar a la intersecció de dos conjunts.

Pandas Inner Join

Exemple:

Python 3




unió de cadena java
# 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>

>

>

Sortida:

Pandes Uneix-te a l'esquerra

Amb una unió exterior esquerra, es mostraran tots els registres del primer Dataframe, independentment de si les claus del primer Dataframe es poden trobar al segon Dataframe. Mentre que, per al segon Dataframe, només es mostraran els registres amb les claus del segon Dataframe que es poden trobar al primer Dataframe.

unió a l'esquerra Exemple:

Python 3




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

>

>

Sortida:

Pandes Unió exterior dreta

Per a una unió correcta, es mostraran tots els registres del segon Dataframe. Tanmateix, només es mostraran els registres amb les claus del primer Dataframe que es poden trobar al segon Dataframe.

Unió exterior dreta dels pandes

Exemple:

Python 3




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

>

>

Sortida:

Pandes Unió exterior completa

Una unió externa completa retorna totes les files del Dataframe esquerre i totes les files del Dataframe dret, i fa coincidir les files sempre que sigui possible, amb NaNs d'altres llocs. Però si el Dataframe està complet, obtenim la mateixa sortida.

Unió exterior completa de Pandas

Exemple:

Python 3




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

>

>

Sortida:

Uneix-te a l'índex Pandas

Per combinar el Dataframe als índexs, passeu el índex_esquerra i índex_dret arguments com a True, és a dir, tots dos Dataframes es fusionen en un índex mitjançant Inner Join predeterminat.

Python 3




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

>

>

Sortida: