Els 4 tipus d'unions de DataFrame que ofereix la biblioteca pandas de Python

Els 4 tipus d'unions de DataFrame que ofereix la biblioteca pandas de Python

Com a analista de dades, sovint us trobareu amb la necessitat de combinar diversos conjunts de dades. Haureu de fer-ho per completar la vostra anàlisi i arribar a una conclusió per al vostre negoci/grups d'interès.





Sovint és difícil representar dades quan s'emmagatzemen en taules diferents. En aquestes circumstàncies, les unions demostren la seva vàlua, independentment del llenguatge de programació en què esteu treballant.





MAKEUSEO VÍDEO DEL DIA

Les unions de Python són com les unions SQL: combinen conjunts de dades fent coincidir les seves files en un índex comú.





Creeu dos marcs de dades per a referència

Per seguir els exemples d'aquesta guia, podeu crear dos DataFrames de mostra. Utilitzeu el codi següent per crear el primer DataFrame, que conté un identificador, un nom i un cognom.

import pandas as pd 

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber"]})
print(a)

Per al primer pas, importeu el fitxer pandes biblioteca. A continuació, podeu utilitzar una variable, a , per emmagatzemar el resultat del constructor DataFrame. Passeu al constructor un diccionari que contingui els vostres valors requerits.



Finalment, mostreu el contingut del valor de DataFrame amb la funció d'impressió, per comprovar que tot es veu com esperaríeu.

De la mateixa manera, podeu crear un altre DataFrame, b , que conté un DNI i valors salarials.





b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"], 
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(b)

Podeu comprovar la sortida en una consola o un IDE. Hauria de confirmar el contingut dels vostres DataFrames:

En què són diferents les unions de la funció de fusió a Python?

La biblioteca pandas és una de les biblioteques principals que podeu utilitzar per manipular DataFrames. Com que els DataFrames contenen diversos conjunts de dades, hi ha diverses funcions disponibles a Python per unir-los.





Python ofereix les funcions d'unió i fusió, entre moltes altres, que podeu utilitzar per combinar DataFrames. Hi ha una gran diferència entre aquestes dues funcions, que cal tenir en compte abans d'utilitzar qualsevol.

La funció d'unió uneix dos DataFrames en funció dels seus valors d'índex. El La funció de combinació combina DataFrames basat en els valors de l'índex i les columnes.

Què heu de saber sobre les unions a Python?

Abans de parlar dels tipus d'unions disponibles, aquí teniu algunes coses importants a tenir en compte:

el meu ordinador fa sorolls estranys
  • Les unions SQL són una de les funcions més bàsiques i són força semblants a les unions de Python.
  • Per unir-vos a DataFrames, podeu utilitzar el pandas.DataFrame.join() mètode.
  • La unió per defecte realitza una unió a l'esquerra, mentre que la funció de combinació realitza una unió interna.

La sintaxi predeterminada per a una unió de Python és la següent:

DataFrame.join(other, on=None, how='left/right/inner/outer', lsuffix='', rsuffix='', 
sort=False)

Invoqueu el mètode d'unió al primer DataFrame i passeu el segon DataFrame com a primer paràmetre, altres . La resta d'arguments són:

  • activat , que anomena un índex per unir-se, si n'hi ha més d'un.
  • com , quin defineix el tipus d'unió, incloent-hi l'interior, l'exterior, l'esquerra i la dreta.
  • lsufix , quin defineix la cadena de sufix esquerra del nom de la columna.
  • rsufix , quin defineix la cadena de sufix dreta del nom de la columna.
  • ordenar , quin és un booleà que indica si cal ordenar el DataFrame resultant.

Apreneu a utilitzar els diferents tipus d'unions a Python

Python té algunes opcions d'unió, que podeu exercir, depenent de la necessitat de l'hora. Aquests són els tipus d'unió:

1. Unió a l'esquerra

La unió esquerra manté intactes els valors del primer DataFrame mentre introdueix els valors coincidents del segon. Per exemple, si voleu introduir els valors coincidents de b , podeu definir-lo de la següent manera:

c = a.join(b, how="left", lsuffix = "_left", rsuffix = "_right", sort = True) 
print(c)

Quan s'executa la consulta, la sortida conté les referències de columnes següents:

He de particionar el meu disc dur Windows 10
  • ID_esquerra
  • Fname
  • Lnom
  • ID_dreta
  • Sou

Aquesta unió extreu les tres primeres columnes del primer DataFrame i les dues últimes columnes del segon DataFrame. Ha utilitzat el lsufix i rsufix valors per canviar el nom de les columnes d'ID d'ambdós conjunts de dades, assegurant-se que els noms de camp resultants són únics.

La sortida és la següent:

  Codi que mostra la unió a l'esquerra a Python's dataframes

2. Uneix-te a la dreta

La unió dreta manté intactes els valors del segon DataFrame, alhora que inclou els valors coincidents de la primera taula. Per exemple, si voleu introduir els valors coincidents de a , podeu definir-lo de la següent manera:

c = b.join(a, how="right", lsuffix = "_right", rsuffix = "_left", sort = True) 
print(c)

La sortida és la següent:

  Codi que mostra la unió dreta a Python's dataframes

Si reviseu el codi, hi ha alguns canvis evidents. Per exemple, el resultat inclou les columnes del segon DataFrame abans que les del primer DataFrame.

Hauríeu d'utilitzar un valor de dret per al com argument per especificar una unió dreta. A més, tingueu en compte com podeu canviar lsufix i rsufix valors per reflectir la naturalesa de la unió correcta.

A les vostres unions habituals, és possible que us trobeu utilitzant les unions esquerra, interior i exterior amb més freqüència, en comparació amb la unió dreta. Tanmateix, l'ús depèn completament dels vostres requisits de dades.

3. Unió interna

Una unió interna ofereix les entrades coincidents dels dos DataFrames. Com que les unions utilitzen els números d'índex per fer coincidir les files, una unió interna només retorna les files que coincideixen. Per a aquesta il·lustració, utilitzem els dos marcs de dades següents:

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005", "006", "007"], 
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny", "Daryl", "Cathy"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber", "Hooper", "Hope"]})
b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(a)
print(b)

La sortida és la següent:

  Creeu nous marcs de dades a Python

Podeu utilitzar una unió interna, de la següent manera:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='inner') 
print(c)

La sortida resultant conté només files que existeixen als dos DataFrames d'entrada:

  Codi que mostra la unió interna a Python's dataframes

4. Unió exterior

Una unió externa retorna tots els valors dels dos marcs de dades. Per a les files sense valors coincidents, produeix un valor nul a les cel·les individuals.

Utilitzant el mateix DataFrame que l'anterior, aquí teniu el codi per a la unió externa:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='outer') 
print(c)
  Codi que mostra la unió externa a Python's dataframes

Ús de les unions a Python

Les unions, com les seves funcions homòlegs, merge i concat, ofereixen molt més que una simple funcionalitat d'unió. Atesa la seva sèrie d'opcions i funcions, podeu triar les opcions que s'adaptin als vostres requisits.

Podeu ordenar els conjunts de dades resultants amb relativa facilitat, amb o sense la funció d'unió, amb les opcions flexibles que ofereix Python.