Ir al contenido
σestadistica.ar

estadistica.ar · Enciclopedia de Estadística en españolhttps://estadistica.ar/conceptos/unir-tablas

M16 · CómputoIntermedioProcedimiento

Unir tablas

Cruzar una base con una tabla de referencia: los cuatro tipos de unión, por qué un cruce multiplica filas y las cuatro formas en que falla sin avisar.

Por Jorge Luis Montivero, Licenciado en Estadística · Mu3Sigma

1 · Qué es

Combinar dos tablas usando una columna en común —la clave— para que cada fila de una encuentre su correspondiente en la otra.

Los casos típicos son siempre los mismos: una base de microdatos con los códigos y una tabla con las etiquetas; los casos de una enfermedad y la población de cada provincia; el padrón y los resultados; un archivo por año que hay que pegar con otro.

2 · Los cuatro tipos

Con una tabla de claves 1, 2, 3 y otra de claves 2, 3, 4:

TipoQué conservaFilasClaves
Interna (inner)solo lo que está en las dos22, 3
Izquierda (left)todo lo de la izquierda31, 2, 3
Derecha (right)todo lo de la derecha32, 3, 4
Completa (outer)todo de las dos41, 2, 3, 4
Tabla izquierda clave col_a 1 a 2 b 3 c Tabla derecha clave col_b 2 x 3 y 4 z Interna: 2 filas clave col_a col_b 2 b x 3 c y Izquierda: 3 filas clave col_a col_b 1 a — 2 b x 3 c y Derecha: 3 filas clave col_a col_b 2 b x 3 c y 4 — z Completa: 4 filas clave col_a col_b 1 a — 2 b x 3 c y 4 — z — : el valor queda vacío (NA) porque la clave no está en esa tabla
Las mismas dos tablas dan 2, 3, 3 o 4 filas según el cruce. Lo que no tiene pareja queda vacío.Fuente: Las tablas de ejemplo del texto.

3 · El cruce puede multiplicar filas

Es lo primero que hay que entender, porque no es intuitivo. Tres personas y una tabla de teléfonos donde algunas tienen más de uno:

FilasSuma de ingresos
Tabla de personas3600
Después del cruce61.300

4 · Las cuatro maneras de fallar en silencio

Si los tipos de la clave no coinciden —un entero de un lado y texto del otro— pandas corta con un error, que es lo bueno. Los casos peligrosos son los que no cortan, porque la clave es del mismo tipo y aun así no coincide:

ProblemaIzquierdaDerechaEncuentran pareja
Ceros a la izquierda"06""6"no
Espacios"Catamarca ""Catamarca"no
Acentos en NFD y NFC"Córdoba""Córdoba"no
Mayúsculas"CABA""Caba"no

5 · Las dos líneas que lo resuelven

indicator=True agrega una columna que dice, para cada fila, si encontró pareja:

m = izquierda.merge(derecha, on="codigo", how="outer", indicator=True)
m["_merge"].value_counts()

validate= corta con un error si la relación no es la esperada:

izquierda.merge(derecha, on="id", validate="one_to_one")
# MergeError: Merge keys are not unique in right dataset

6 · Un cruce real, y lo que se perdió

Para calcular tasas de mortalidad por jurisdicción hay que cruzar las defunciones del DEIS con la población del Censo. Con indicator=True:

Jurisdicciones
En las dos tablas24
Solo en el DEIS1
Solo en el Censo0

La que sobra es el código 99, “Sin Información”: 1.742 defunciones —el 0,46 % del total— de personas cuya jurisdicción de residencia no se registró.

7 · Errores frecuentes

  • No verificar que la clave sea única en la tabla de referencia. Un cruce de uno a muchos multiplica filas y todos los totales posteriores.
  • Cruzar sin indicator=True. Las filas que no encuentran pareja se van sin avisar.
  • No revisar los ceros a la izquierda. "06" y "6" no son la misma clave.
  • Cruzar por nombre en vez de por código. Los nombres tienen espacios, acentos, mayúsculas y variantes —“Ciudad Autónoma de Buenos Aires”, “CABA”, “Capital Federal”—; los códigos, no.
  • Usar cruce interno por defecto. Descarta en silencio lo que no coincide de los dos lados; el izquierdo al menos conserva la tabla principal.
  • No declarar los casos excluidos por el cruce. Si el nn del análisis no coincide con el de la base, tiene que estar escrito por qué.
  • Calcular totales después de cruzar sin comprobar que la cantidad de filas sea la esperada.

8 · En el software

# R — dplyr
library(dplyr)
left_join(datos, referencia, by = "codigo")
inner_join(datos, referencia, by = "codigo")
full_join(datos, referencia, by = "codigo")

# Verificar antes y después
anyDuplicated(referencia$codigo)             # ¿la clave es única?
nrow(datos); nrow(resultado)                 # ¿cambió la cantidad de filas?
setdiff(datos$codigo, referencia$codigo)     # ¿qué claves quedaron sueltas?
# Python — pandas
m = datos.merge(referencia, on="codigo", how="left", indicator=True)
m["_merge"].value_counts()

datos.merge(referencia, on="id", validate="many_to_one")

# Claves sueltas
set(datos["codigo"]) - set(referencia["codigo"])
Excel:    =BUSCARV(clave; tabla; columna; FALSO)   ← el FALSO es obligatorio
          Sin él busca la coincidencia APROXIMADA y devuelve cualquier cosa.
          Mejor: =COINCIDIR con =INDICE, o Power Query › Combinar consultas
SPSS:     Datos › Fusionar archivos › Añadir variables
          (pide que las dos bases estén ORDENADAS por la clave)

Herramientas de este tema

Seguir leyendo

Cómo citar: Montivero, J. L. (2026). Unir tablas. estadistica.ar. https://estadistica.ar/conceptos/unir-tablas

estadistica.ar es gratuita y sin publicidad. Si te sirvió, podés invitar un cafecito por transferencia al alias mu3sigma. Asesoramiento estadístico, encuestas y capacitaciones: m3s.pro · WhatsApp +54 9 383 499-7929.

Cómo citar esta entrada

APA (7.ª edición)

Montivero, J. L. (2026). Unir tablas. estadistica.ar. https://estadistica.ar/conceptos/unir-tablas

BibTeX

@misc{estadistica_ar_unir_tablas,
  author       = {Montivero, Jorge Luis},
  title        = {{Unir tablas}},
  year         = {2026},
  howpublished = {\url{https://estadistica.ar/conceptos/unir-tablas}},
  note         = {estadistica.ar. Consultado el \today},
  urldate      = {2026-09-28}
}

Última actualización: 28 de septiembre de 2026. El contenido está bajo licencia CC BY-NC-SA 4.0: se puede reutilizar citando la fuente y sin fines comerciales.