¿Cuál es la diferencia entre unirse y fusionarse en Pandas?

Pandas proporciona varias facilidades para combinar fácilmente Series o DataFrame con varios tipos de lógica de conjuntos para los índices y la funcionalidad de álgebra relacional en el caso de operaciones de tipo unión/fusión. 

Tanto unir como combinar se pueden usar para combinar dos marcos de datos, pero el método de combinación combina dos marcos de datos en función de sus índices, mientras que el método de combinación es más versátil y nos permite especificar columnas junto al índice para unir ambos marcos de datos.

Primero creemos dos marcos de datos para mostrar el efecto de los dos métodos.

Python3

import pandas as pd
 
# Creating the two dataframes
left = pd.DataFrame([['a', 1], ['b', 2]], list('XY'), list('PQ'))
right = pd.DataFrame([['c', 3], ['d', 4]], list('XY'), list('PR'))

Producción:

Ahora veamos el efecto de los dos métodos en los marcos de datos uno por uno.

unirse

El método de unión toma dos marcos de datos y los une en sus índices (técnicamente, puede elegir la columna para unir en el marco de datos izquierdo). Si hay columnas superpuestas, la unión querrá que agregue un sufijo al nombre de la columna superpuesta del marco de datos izquierdo. Nuestros dos marcos de datos tienen un nombre de columna superpuesto P.

Ejemplo :

Python3

joined_df = left.join(right, lsuffix='_')
print(joined_df)

Producción :

Observe que el índice se conserva y tenemos cuatro columnas. También podemos especificar por separado una columna específica del marco de datos izquierdo con un parámetro para usar como clave de combinación, pero seguirá usando el índice de la derecha.

Ejemplo :

Python3

joined_df2 = left.reset_index().join(right, on='index', lsuffix='_')
print(joined_df2)

Producción :

unir

En un nivel básico, fusionar hace más o menos lo mismo que unir. Ambos métodos se utilizan para combinar dos marcos de datos, pero la combinación es más versátil, requiere especificar las columnas como una clave de combinación. Podemos especificar las columnas superpuestas con el parámetro on, o podemos especificarlas por separado con los parámetros left_on y right_on .

Ejemplo :

Python3

merged_df = left.merge(right, on='P', how='outer')
print(merged_df)

Producción :

Aquí, observe que el método de fusión destruyó el índice. 

Podemos especificar explícitamente que estamos fusionando sobre la base del índice con el parámetro left_index o right_index .

Ejemplo :

Python3

merged_df = left.merge(right, left_index=True,
                       right_index=True, suffixes=['_', ''])
print(merged_df)

Producción :

Publicación traducida automáticamente

Artículo escrito por piyushtiwari515 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *