Introducción
A la hora de manipular conjuntos de datos, es muy común el tener que combinar datos de distintas fuentes, que contienen información complementaria sobre los mismos elementos o individuos. Dos instrucciones básicas para esta combinación es concat, que permite unir DataFrames concatenándolos o bien por filas o bien por las columnas, y merge que permite une DataFrames en base a los valores de una o más columnas
Unir DataFrames con concat
Concatenar DataFrames por filas o por columnas
Concatener por filas en el caso en que los índices de los DataFrames tienen valores comunes
Queremos unir DataFrames por filas, qué pasa si tienen columnas diferentes?
Unir DataFrames con merge
Merge permite combinar dos DataFrames realizando la unión en base a los valores comunes de alguna(s) de su(s) columna(s)
Descripción de merge
Si queréis reproducir los ejemplos, podéis copiar y pegar la definición de los DataFrames:
clientes= pd.DataFrame(
{'dni': ['12345678', '23456789', '34567890', '01234567'],
'nombre': ['José', 'Pedro', 'María', 'Blanca'],
'apellido1': ['Pérez', 'Martínez', 'Sánchez', 'Ruiz'],
'apellido2': ['Martínez', 'Moreno', 'Meseguer', 'Torres']
}
)
pedidos= pd.DataFrame(
{'id': [10, 12, 21, 22, 24, 25, 28],
'dni': np.repeat(
['23456789','12345678', '34567890', '87654321'],
repeats=[2, 3, 1, 1]
),
'id_producto': ['AAA123', 'SOX433',
'QWE000', 'SOX433', 'PII342', 'ZXY099','PII342']
}
)
productos = pd.DataFrame(
{
'id': ['AAA123', 'SOX433',
'QWE000', 'PII342', 'ZXY099'],
'nombre': ['Pila', 'Bombilla', 'Interruptor', 'Enchufe', 'Toma']
}
)