estadistica.ar · Enciclopedia de Estadística en españolhttps://estadistica.ar/conceptos/unir-tablas
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:
| Tipo | Qué conserva | Filas | Claves |
|---|---|---|---|
Interna (inner) | solo lo que está en las dos | 2 | 2, 3 |
Izquierda (left) | todo lo de la izquierda | 3 | 1, 2, 3 |
Derecha (right) | todo lo de la derecha | 3 | 2, 3, 4 |
Completa (outer) | todo de las dos | 4 | 1, 2, 3, 4 |
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:
| Filas | Suma de ingresos | |
|---|---|---|
| Tabla de personas | 3 | 600 |
| Después del cruce | 6 | 1.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:
| Problema | Izquierda | Derecha | Encuentran 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 tablas | 24 |
| Solo en el DEIS | 1 |
| Solo en el Censo | 0 |
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 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
Bioestadística · Cómputo y comunicación · 279 de 322
Estadística para Economía y Administración · Cómputo y comunicación · 277 de 303
Probabilidad y Estadística · Cómputo y comunicación · 268 de 290
Estadística para Ciencias Sociales · Cómputo y comunicación · 240 de 277
Estadística para la tesis · Los datos · 95 de 231
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.