Contenido del curso

NumPy

Pandas

Fusión de DataFrames con Pandas: merge, concat y join

Resumen

Combinar datos de múltiples tablas es esencial para integrar información de diferentes fuentes en el análisis de datos. Pandas ofrece funciones como merge(), concat() y join() que facilitan esta tarea de manera eficiente y flexible. A continuación, exploraremos cómo utilizar estas funciones con ejemplos prácticos que te ayudarán a dominar la combinación de DataFrames en tus proyectos de análisis de datos.

¿Cómo se utiliza la función merge()?

La función merge() en Pandas permite combinar DataFrames de manera similar a las uniones en SQL, basándose en una o más claves comunes.

Unión Interna (Inner Join)

Combina solo las filas con claves coincidentes en ambos DataFrames.

import pandas as pd # Crear DataFrames de ejemplo df1 = pd.DataFrame({ 'key': ['A', 'B', 'C'], 'value1': [1, 2, 3] }) df2 = pd.DataFrame({ 'key': ['B', 'C', 'D'], 'value2': [4, 5, 6] }) # Realizar un merge interno inner_merged = pd.merge(df1, df2, on='key', how='inner') print("Unión Interna:\n", inner_merged)

Unión Externa (Outer Join)

Incluye todas las filas de ambos DataFrames, rellenando con NaN donde no haya coincidencias.

# Realizar un merge externo outer_merged = pd.merge(df1, df2, on='key', how='outer') print("Unión Externa:\n", outer_merged)

Unión Izquierda (Left Join)

Devuelve todas las filas del DataFrame izquierdo y las filas coincidentes del DataFrame derecho.

# Realizar un merge izquierda left_merged = pd.merge(df1, df2, on='key', how='left') print("Unión Izquierda:\n", left_merged)

Unión Derecha (Right Join)

Devuelve todas las filas del DataFrame derecho y las filas coincidentes del DataFrame izquierdo.

# Realizar un merge derecha right_merged = pd.merge(df1, df2, on='key', how='right') print("Unión Derecha:\n", right_merged)

¿Cómo se aplica la función concat()?

La función concat() se usa para concatenar DataFrames a lo largo de un eje, ya sea apilándolos verticalmente o combinándolos horizontalmente.

Concatenación Vertical

Apila los DataFrames uno sobre otro de forma vertical.

# Crear DataFrames de ejemplo df3 = pd.DataFrame({ 'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2'] }) df4 = pd.DataFrame({ 'A': ['A3', 'A4', 'A5'], 'B': ['B3', 'B4', 'B5'] }) # Concatenar verticalmente vertical_concat = pd.concat([df3, df4]) print("Concatenación Vertical:\n", vertical_concat)

Concatenación Horizontal

Combina los DataFrames uno al lado del otro.

# Concatenar horizontalmente horizontal_concat = pd.concat([df3, df4], axis=1) print("Concatenación Horizontal:\n", horizontal_concat)

¿Cómo funciona la función join()?

La función join() permite combinar DataFrames en función del índice o una columna clave, similar a merge(), pero más simplificado para uniones basadas en índices.

Join con Índice

Combina DataFrames utilizando el índice como la clave de unión.

# Crear DataFrames de ejemplo con índices df5 = pd.DataFrame({ 'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2'] }, index=['K0', 'K1', 'K2']) df6 = pd.DataFrame({ 'C': ['C0', 'C1', 'C2'], 'D': ['D0', 'D1', 'D2'] }, index=['K0', 'K2', 'K3']) # Realizar un join joined = df5.join(df6, how='inner') print("Join con Índice:\n", joined)