estadistica.ar · Enciclopedia de Estadística en españolhttps://estadistica.ar/conceptos/limpieza-de-datos
Limpieza de datos
La etapa más larga de cualquier trabajo con datos: qué se revisa, en qué orden, y por qué toda corrección tiene que quedar registrada.
Por Jorge Luis Montivero, Licenciado en Estadística · Mu3Sigma
1 · Definición
La limpieza de datos es el conjunto de controles y correcciones que llevan una base cruda a un estado en el que se puede analizar con confianza.
2 · Para qué sirve
Porque ningún análisis compensa datos sucios. Un valor mal codificado, una categoría escrita de tres formas o un caso duplicado producen resultados que el software calcula sin protestar y que están mal.
Y porque la limpieza es donde uno conoce los datos. Quien limpia una base sabe qué preguntas se pueden hacer con ella y cuáles no; quien recibe la base limpia, no.
3 · El orden de los controles
1 · Estructura. ¿Coincide la cantidad de filas con la de casos relevados? ¿Hay identificadores duplicados? ¿Las columnas son las que dice el diccionario?
2 · Tipos. ¿Cada columna tiene el tipo que corresponde? Una columna numérica leída como texto —porque alguien escribió “45 kg” en una celda— rompe todos los cálculos y no siempre avisa.
3 · Rangos. Mínimos y máximos de cada variable numérica. Edades de 187, pesos de 0,07, porcentajes de 150.
4 · Categorías. Tabla de frecuencias de cada variable cualitativa. Ahí saltan “Femenino”, “femenino”, “F” y ” Femenino” con un espacio adelante, que para el software son cuatro categorías distintas.
5 · Consistencia entre variables. Es el control que más errores encuentra y el que más se saltea:
- Un varón con antecedentes obstétricos.
- Alguien de 12 años con nivel universitario completo.
- Una fecha de alta anterior a la de ingreso.
- Un inactivo con ingreso de la ocupación principal.
6 · Faltantes. Cuántos hay por columna y de qué tipo. Se trata en datos faltantes.
7 · Duplicados. No solo por identificador: también casos idénticos en todas las variables, que suelen ser una fila cargada dos veces.
4 · Los controles corridos sobre una base profesional
Vale la pena ver qué encuentran cuando la base está bien hecha. Doce controles sobre las 43.739 filas de la EPH del primer trimestre de 2026:
| Control | Casos |
|---|---|
| Inactivo con ingreso de la ocupación principal | 0 |
| Desocupado con ingreso de la ocupación principal | 0 |
| Menor de 10 con ingreso de la ocupación principal | 0 |
| Ocupado sin categoría ocupacional | 0 |
| Menor de 14 con nivel superior completo | 0 |
| Horas semanales mayores a 168 | 0 |
| Jefe de hogar menor de 10 años | 0 |
| Identificadores de persona repetidos | 0 |
| Filas completamente duplicadas | 0 |
| Ocupado con 0 horas trabajadas | 1.481 |
5 · Dos controles que no controlan lo que parece
El de duplicados muestra la mitad. En pandas, datos[datos.duplicated()]
devuelve solo la repetición, no el original: sobre una base con los casos 2
y 3 cargados dos veces, muestra dos filas en lugar de cuatro. Para volver al
cuestionario hacen falta las dos, y eso pide keep=False.
La tabla de frecuencias no muestra los espacios. Es el control que existe
justamente para encontrar "Femenino ", y en pantalla se ve así:
Femenino 2
femenino 1
F 1
Femenino 1 ← esta tiene un espacio al final
Y una advertencia sobre la limpieza automática: strip() y upper() resuelven
el espacio y las mayúsculas —de cuatro categorías quedan dos— pero la "F"
sigue aparte. Ninguna función sabe que es lo mismo que "FEMENINO"; esa
decisión es del analista y tiene que quedar escrita.
6 · La regla que sostiene todo
Esto no es un capricho metodológico: es lo que permite volver atrás, entender qué se hizo y rehacerlo cuando aparece un dato nuevo.
Editar la planilla a mano significa que dentro de un mes nadie —incluido vos— puede responder por qué el caso 47 tiene un valor distinto del que tenía el cuestionario. Con un script, la respuesta está escrita.
El flujo correcto:
datos-crudos.csv → [script de limpieza] → datos-limpios.csv → análisis
(no se toca) (se versiona) (se regenera)
7 · Qué se documenta
Al terminar, el informe tiene que poder responder:
- Cuántos casos entraron y cuántos quedaron.
- Qué casos se excluyeron y por qué.
- Qué correcciones se hicieron y con qué criterio.
- Cómo se trataron los faltantes.
Un trabajo donde el del análisis no coincide con el del relevamiento y nadie lo explica es un trabajo que no se puede evaluar.
8 · Errores frecuentes
- Corregir a mano sobre la planilla. El error estructural de este tema.
- Borrar casos sin registro. Si desaparecen 30 casos entre el relevamiento y el análisis, tiene que estar escrito por qué.
- Confundir limpieza con maquillaje. Sacar los valores que no gustan no es limpiar.
- Saltear el control de consistencia entre variables. Los errores más graves no están dentro de una columna sino en la relación entre dos.
- No mirar los espacios en blanco.
"Femenino "y"Femenino"son categorías distintas para cualquier programa, y en la tabla de frecuencias se ven iguales. - Buscar duplicados con el valor por defecto.
duplicated()marca la repetición y no el original: muestra la mitad de las filas involucradas. - Cruzar tablas sin verificar que todas las filas encontraron pareja. Un merge que pierde filas no avisa: ver unir tablas.
- Limpiar sin conocer el instrumento. Sin el cuestionario a mano, es imposible saber si un vacío es “no corresponde” o un dato perdido.
- Hacerlo al final. La limpieza va antes del análisis, no cuando los resultados salen raros.
9 · En el software
# R — controles de consistencia con dplyr
library(dplyr)
# Casos imposibles
datos |> filter(sexo == "V", embarazos > 0)
datos |> filter(edad < 18, nivel_ed == "Universitario completo")
# Categorías con espacios o mayúsculas inconsistentes
datos |> count(sexo)
datos <- datos |> mutate(sexo = trimws(toupper(sexo)))
# Duplicados completos: los DOS, el original y la repetición
datos |> filter(duplicated(datos) | duplicated(datos, fromLast = TRUE))
# Python
datos.query("sexo == 'V' and embarazos > 0")
datos["sexo"] = datos["sexo"].str.strip().str.upper()
datos[datos.duplicated(keep=False)] # keep=False: original y repetición
datos.dtypes # verificar tipos
# Los espacios que la tabla de frecuencias esconde
datos["sexo"].unique().tolist() # con comillas, se ven
datos["sexo"].str.len().value_counts() # o por la longitud
# Después de un cruce, verificar que nadie quedó sin pareja
m = der.merge(izq, on="sexo", how="left", indicator=True)
m["_merge"].value_counts()
Excel: Datos › Quitar duplicados
=ESPACIOS(celda) para limpiar espacios sobrantes
Formato condicional › Reglas para resaltar valores fuera de rango
SPSS: Datos › Identificar casos duplicados
Transformar › Recodificar (siempre "en distintas variables",
nunca "en las mismas": conserva el original)
Herramientas de este tema
Seguir leyendo
Bioestadística · Cómputo y comunicación · 283 de 330
Estadística para Economía y Administración · Cómputo y comunicación · 288 de 318
Probabilidad y Estadística · Cómputo y comunicación · 276 de 302
Estadística para Ciencias Sociales · Cómputo y comunicación · 247 de 288
Estadística para la tesis · Los datos · 93 de 233
Cómo citar: Montivero, J. L. (2026). Limpieza de datos. estadistica.ar. https://estadistica.ar/conceptos/limpieza-de-datos
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). Limpieza de datos. estadistica.ar. https://estadistica.ar/conceptos/limpieza-de-datos
BibTeX
@misc{estadistica_ar_limpieza_de_datos,
author = {Montivero, Jorge Luis},
title = {{Limpieza de datos}},
year = {2026},
howpublished = {\url{https://estadistica.ar/conceptos/limpieza-de-datos}},
note = {estadistica.ar. Consultado el \today},
urldate = {2026-09-27}
}Última actualización: 27 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.