Los 4 tipos de uniones de marcos de datos que ofrece la biblioteca pandas de Python

Los 4 tipos de uniones de marcos de datos que ofrece la biblioteca pandas de Python

Como analista de datos, a menudo se enfrentará a la necesidad de combinar varios conjuntos de datos. Deberá hacer esto para completar su análisis y llegar a una conclusión para su negocio/partes interesadas.





A menudo es un desafío representar datos cuando se almacenan en diferentes tablas. En tales circunstancias, las uniones demuestran su valor, independientemente del lenguaje de programación en el que esté trabajando.





MAKEUSEOF VÍDEO DEL DÍA

Las combinaciones de Python son como las combinaciones de SQL: combinan conjuntos de datos haciendo coincidir sus filas en un índice común.





Crear dos marcos de datos para referencia

Para seguir los ejemplos de esta guía, puede crear dos marcos de datos de muestra. Utilice el siguiente código para crear el primer DataFrame, que contiene un ID, un nombre y un apellido.

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)

Para el primer paso, importe el pandas biblioteca. A continuación, puede utilizar una variable, a , para almacenar el resultado del constructor de DataFrame. Pase al constructor un diccionario que contenga los valores requeridos.



Finalmente, muestra el contenido del valor de DataFrame con la función de impresión, para comprobar que todo se ve como esperas.

Del mismo modo, puede crear otro DataFrame, b , que contiene un ID y valores salariales.





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

print(b)

Puede verificar la salida en una consola o un IDE. Debería confirmar el contenido de sus DataFrames:

¿En qué se diferencian las uniones de la función Merge en Python?

La biblioteca pandas es una de las principales bibliotecas que puede usar para manipular DataFrames. Dado que los DataFrames contienen varios conjuntos de datos, Python dispone de varias funciones para unirlos.





Python ofrece las funciones de unión y fusión, entre muchas otras, que puede usar para combinar tramas de datos. Hay una gran diferencia entre estas dos funciones, que debe tener en cuenta antes de usar cualquiera.

La función de unión une dos tramas de datos en función de sus valores de índice. los la función de combinación combina DataFrames basado en los valores del índice y las columnas.

¿Qué necesita saber sobre las uniones en Python?

Antes de discutir los tipos de uniones disponibles, aquí hay algunas cosas importantes a tener en cuenta:

  • Las combinaciones SQL son una de las funciones más básicas. y son bastante similares a las uniones de Python.
  • Para unirse a DataFrames, puede usar el pandas.DataFrame.join() método.
  • La combinación predeterminada realiza una combinación izquierda, mientras que la función de combinación realiza una combinación interna.

La sintaxis predeterminada para una combinación de Python es la siguiente:

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

Invoque el método de unión en el primer DataFrame y pase el segundo DataFrame como su primer parámetro, otro . Los argumentos restantes son:

  • en , que nombra un índice para unirse, si hay más de uno.
  • cómo , cual define el tipo de unión, incluyendo interior, exterior, izquierda y derecha.
  • sufijo , cual define la cadena de sufijo izquierdo del nombre de su columna.
  • sufijo , cual define la cadena de sufijo derecho de su nombre de columna.
  • clasificar , cual es un valor booleano que indica si ordenar el DataFrame resultante.

Aprenda a usar los diversos tipos de uniones en Python

Python tiene algunas opciones de unión, que puede ejercitar, según la necesidad del momento. Estos son los tipos de combinación:

1. Unión izquierda

La combinación izquierda mantiene intactos los valores del primer DataFrame mientras trae los valores coincidentes del segundo. Por ejemplo, si desea traer los valores coincidentes de b , puedes definirlo de la siguiente manera:

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

Cuando se ejecuta la consulta, la salida contiene las siguientes referencias de columna:

  • ID_izquierda
  • Nombre
  • Nombre
  • ID_derecho
  • Salario

Esta combinación extrae las primeras tres columnas del primer DataFrame y las dos últimas columnas del segundo DataFrame. Ha usado el sufijo y sufijo valores para cambiar el nombre de las columnas de ID de ambos conjuntos de datos, asegurándose de que los nombres de los campos resultantes sean únicos.

eliminar archivos de actualización de windows windows 8

La salida es la siguiente:

  Código que muestra la combinación izquierda en Python's dataframes

2. Unirse a la derecha

La unión derecha mantiene intactos los valores del segundo DataFrame, al tiempo que trae los valores coincidentes de la primera tabla. Por ejemplo, si desea traer los valores coincidentes de a , puedes definirlo de la siguiente manera:

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

La salida es la siguiente:

  Código que muestra la combinación derecha en Python's dataframes

Si revisa el código, hay algunos cambios evidentes. Por ejemplo, el resultado incluye las columnas del segundo DataFrame antes que las del primer DataFrame.

Debe utilizar un valor de Correcto Para el cómo argumento para especificar una combinación correcta. Además, tenga en cuenta cómo puede cambiar el sufijo y sufijo valores para reflejar la naturaleza de la unión correcta.

En sus uniones regulares, es posible que use las uniones izquierda, interna y externa con más frecuencia, en comparación con la unión derecha. Sin embargo, el uso depende completamente de sus requisitos de datos.

3. Unión interna

Una combinación interna entrega las entradas coincidentes de ambos DataFrames. Dado que las combinaciones usan los números de índice para hacer coincidir las filas, una combinación interna solo devuelve las filas que coinciden. Para esta ilustración, usemos los siguientes dos marcos de datos:

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 salida es la siguiente:

  Crear nuevos marcos de datos en Python

Puede usar una unión interna, de la siguiente manera:

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

La salida resultante contiene solo filas que existen en ambos DataFrames de entrada:

  Código que muestra unión interna en Python's dataframes

4. Unión exterior

Una combinación externa devuelve todos los valores de ambos DataFrames. Para las filas sin valores coincidentes, genera un valor nulo en las celdas individuales.

Usando el mismo DataFrame que el anterior, aquí está el código para la unión externa:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='outer') 
print(c)
  Código que muestra la unión externa en Python's dataframes

Usar uniones en Python

Las uniones, al igual que sus funciones homólogas, fusionar y concatenar, ofrecen mucho más que una simple funcionalidad de unión. Dada su serie de opciones y funciones, puede elegir las opciones que se ajusten a sus requerimientos.

Puede ordenar los conjuntos de datos resultantes con relativa facilidad, con o sin la función de combinación, con las opciones flexibles que ofrece Python.