Limpieza y preprocesamiento de datos con ChatGPT: guía reproducible

Revisión editorial: 2 de agosto de 2026. Esta guía explica cómo usar ChatGPT o la API de OpenAI como apoyo en limpieza de datos, con reglas reproducibles y validación. chatgpt-gratis.chat es un sitio independiente y no está afiliado con OpenAI, pandas ni scikit-learn.

La IA puede proponer código, explicar un perfil o señalar anomalías. No sabe automáticamente qué representa un nulo, qué duplicado es legítimo ni qué valor debe corregirse. Un dataset “limpio” solo lo es respecto de reglas del dominio, y esas reglas deben quedar documentadas, probadas y aprobadas.

ChatGPT, análisis de datos y API

Cuando tu cuenta de ChatGPT muestre herramientas de carga y análisis de archivos, comprueba en la documentación y en la propia interfaz qué formatos, límites y capacidades están habilitados. No prometemos ejecución de Python ni acceso a conectores sin una fuente oficial vigente para esa cuenta. Si tu interfaz muestra carga y análisis, úsala para exploración y revisión; no afirmes que está reservada para un plan concreto sin consultar la documentación actual.

La API de OpenAI es una ruta separada para aplicaciones y pipelines. Una suscripción de ChatGPT no incluye automáticamente uso de API. Para procesos recurrentes, el código versionado y ejecutado en tu entorno suele ser la fuente reproducible; el modelo puede ayudar a escribirlo, pero el pipeline final no debería depender de una conversación manual.

Flujo de limpieza que conserva evidencia

  1. Congelar la entrada: guardar el archivo original como solo lectura, con hash, fecha y origen.
  2. Definir propósito: identificar qué análisis o sistema consumirá el resultado.
  3. Perfilar: contar filas, columnas, tipos, nulos, duplicados, categorías y rangos.
  4. Especificar reglas: documentar claves, formatos, unidades, dominios y tratamiento de excepciones.
  5. Transformar: ejecutar código versionado sobre una copia.
  6. Cuarentena: separar registros dudosos; no eliminarlos silenciosamente.
  7. Validar: comparar recuentos, claves, sumas de control, distribución y reglas.
  8. Revisar: obtener aprobación del propietario de datos para decisiones de dominio.
  9. Publicar: guardar dataset, informe de calidad, versión de código y linaje.

No sobrescribas la única copia. Registra cada cambio con motivo: “normalizar país según catálogo v3” es auditable; “ChatGPT corrigió los valores” no lo es. Si una transformación no puede explicarse con una regla, envíala a revisión.

Qué inspeccionar antes de limpiar

  • Número de filas y columnas por archivo, hoja o partición.
  • Nombres duplicados, espacios invisibles y cambios de esquema.
  • Tipos reales frente a tipos esperados.
  • Valores nulos por columna y combinaciones de campos.
  • Claves repetidas y duplicados exactos o aproximados.
  • Fechas imposibles, formatos locales y zonas horarias.
  • Monedas, unidades y separadores decimales.
  • Categorías fuera del catálogo y variaciones de mayúsculas o acentos.
  • Rangos, valores extremos y discontinuidades temporales.
  • Codificación, caracteres dañados y truncamiento.

Una anomalía estadística no es necesariamente un error. Una venta grande, un apellido poco común o un sensor extremo pueden ser válidos. Marca, investiga y conserva el valor original; no borres para que el gráfico “se vea mejor”.

Prompt para obtener un plan, no una limpieza ciega

Actúa como revisor de calidad de datos.

Propósito del dataset: [uso permitido]
Esquema esperado: [columnas, tipos y claves]
Catálogos autorizados: [valores]
Muestra sintética: [filas sin datos reales]
Reglas ya aprobadas: [lista]

Devuelve:
1. problemas posibles y cómo detectarlos;
2. transformaciones propuestas separadas de decisiones de dominio;
3. validaciones antes y después;
4. registros que deben ir a cuarentena;
5. preguntas para el data owner;
6. código pandas legible con comentarios.

No inventes valores faltantes, no elimines outliers y no cambies la clave.

Ejecuta el código primero con datos sintéticos y una copia. Revisa las versiones de bibliotecas y la documentación de cada método. Pide una salida con informe de cambios, no solo un CSV final.

Ejemplo reproducible con pandas

El ejemplo normaliza campos y crea máscaras de calidad. No decide qué duplicado conservar ni rellena valores. Ajusta reglas al dominio y fija dependencias en tu proyecto.

import pandas as pd

required = {"record_id", "event_time", "amount", "country"}
allowed_countries = {"ES", "MX", "AR", "CO", "CL"}

raw = pd.read_csv("input.csv", dtype="string", keep_default_na=True)
missing_columns = required - set(raw.columns)
if missing_columns:
    raise ValueError(f"Faltan columnas: {sorted(missing_columns)}")

df = raw.copy()
df["record_id"] = df["record_id"].str.strip()
df["country_normalized"] = df["country"].str.strip().str.upper()
df["event_time_utc"] = pd.to_datetime(df["event_time"], errors="coerce", utc=True)
df["amount_numeric"] = pd.to_numeric(df["amount"], errors="coerce")

df["issue_missing_id"] = df["record_id"].isna() | df["record_id"].eq("")
df["issue_duplicate_id"] = df.duplicated("record_id", keep=False)
df["issue_invalid_date"] = df["event_time_utc"].isna()
df["issue_invalid_amount"] = df["amount_numeric"].isna()
df["issue_unknown_country"] = ~df["country_normalized"].isin(allowed_countries)

issue_columns = [c for c in df.columns if c.startswith("issue_")]
df["requires_review"] = df[issue_columns].any(axis=1)

clean_candidates = df.loc[~df["requires_review"]].copy()
quarantine = df.loc[df["requires_review"]].copy()

assert len(clean_candidates) + len(quarantine) == len(raw)
assert clean_candidates["record_id"].is_unique

clean_candidates.to_parquet("clean_candidates.parquet", index=False)
quarantine.to_parquet("quarantine.parquet", index=False)

La documentación de pandas sobre valores ausentes explica que la representación depende del tipo y recomienda métodos como isna(). No compares un nulo como si fuera una cadena común. Para duplicados, define primero la entidad y la clave; dos filas idénticas pueden ser eventos legítimos y dos filas distintas pueden representar al mismo objeto.

Valores faltantes: una decisión de significado

  • Desconocido: el valor existe, pero no se conoce.
  • No aplicable: el campo no corresponde a ese registro.
  • No recogido: el proceso no lo pidió o falló.
  • Suprimido: se ocultó por privacidad o umbral.
  • Cero: un valor real que no debe confundirse con ausencia.

Rellenar todos los nulos con media, cero o la categoría más frecuente puede introducir sesgo y alterar totales. Conserva un indicador de imputación, justifica el método y valida por grupo y periodo. Para informes, a veces la respuesta correcta es mostrar “sin dato”; para un modelo predictivo, el tratamiento debe encajar en el pipeline y la evaluación.

Evitar fuga de datos en machine learning

Si el dataset se usará para ML, divide entrenamiento y prueba antes de aprender parámetros de imputación, escalado o selección. La guía de scikit-learn sobre data leakage recomienda no usar datos de prueba durante el ajuste y emplear pipelines para aplicar transformaciones coherentes. Un modelo de lenguaje que ve todo el dataset para proponer reglas también puede contaminar una evaluación; documenta qué información utilizó.

Validar el resultado

  • Recuento de entrada = aceptados + cuarentena + eliminados justificados.
  • Claves únicas y relaciones referenciales según contrato.
  • Sumas y saldos reconciliados cuando deban conservarse.
  • Tipos, rangos, unidades y categorías conformes.
  • Distribuciones comparadas por periodo y grupo.
  • Muestra manual de registros cambiados y no cambiados.
  • Pruebas para nulos, codificación, locale y fechas límite.
  • Informe con versión de código, dependencias, reglas y owner.

No publiques una cifra universal sobre cuánto tiempo ocupa la limpieza ni cuánto ahorra la IA. Mide tu propio proceso: registros revisados, defectos detectados, correcciones aceptadas, tiempo y errores posteriores, con metodología y fecha.

Automatización mediante OpenAI API

Para clasificar incidencias o proponer reglas, usa Responses API desde un backend con clave protegida. Structured Outputs puede devolver tipo de problema, columna, evidencia y recomendación, pero una regla determinista decide si el esquema es válido. Deduplica por dataset, versión, fila y regla; aplica límites y revisión antes de modificar datos.

Evalúa GPT‑5.6 Luna para cargas eficientes y de gran volumen, Terra para equilibrar capacidad y coste, y Sol cuando necesites la capacidad principal. La elección final debe basarse en pruebas propias de calidad, latencia y coste. Verifica modelos en la documentación oficial. No envíes el archivo completo si basta el esquema y una muestra sintética.

Si el conjunto limpio terminará en una base de datos, continúa con el método para generar y validar consultas SQL de solo lectura antes de permitir cualquier escritura.

Privacidad y retención

Elimina o seudonimiza nombres, contactos, identificadores, datos de salud, pagos y secretos antes de subir. Revisa permisos de archivos conectados y retención de la sesión. Un CSV de prueba puede contener datos reales escondidos en otras columnas o hojas.

En Responses, store:false evita conservar la respuesta como estado recuperable, pero no equivale automáticamente a retención cero. La documentación de datos de OpenAI señala que los registros de supervisión de abuso pueden conservar contenido hasta 30 días por defecto, salvo controles y elegibilidad específicos. ChatGPT y archivos cargados tienen políticas propias enlazadas desde su ayuda.

Informe de cambios y revisión de excepciones

Publica junto al resultado un informe legible por máquinas y personas: versión de entrada, versión del código, filas leídas, aceptadas y en cuarentena, columnas añadidas o eliminadas, reglas ejecutadas, fallos y aprobador. Incluye ejemplos sintéticos de cada regla, no registros sensibles. Si una transformación cambia el significado —por ejemplo, convertir moneda o fusionar entidades— registra la fuente de conversión y la decisión del owner.

La cola de excepciones necesita estado, responsable, fecha y resolución. No corrijas manualmente el archivo final sin reflejar el cambio en una regla o un parche auditable; de lo contrario, la siguiente ejecución repetirá el defecto. Distingue “valor corregido”, “valor confirmado”, “registro excluido” y “regla modificada”. Reprocesa solo las filas y versiones afectadas y conserva una forma de volver al resultado anterior.

Calidad después de publicar

La validación no termina al generar el archivo. Observa cambios de esquema, aumento de nulos, categorías nuevas, retrasos, duplicados y reconciliaciones en cada ejecución. Establece límites con el propietario del dato y define si un fallo bloquea la publicación, crea una advertencia o deriva a revisión. Un umbral histórico no debe mantenerse cuando cambia el proceso de origen.

Si los consumidores detectan un problema, enlaza la incidencia con dataset, versión y transformación. Evalúa impacto, detén distribuciones posteriores y notifica a quienes usan el dato cuando corresponda. Añade el caso como prueba de regresión. El objetivo no es ocultar errores, sino hacerlos visibles, corregibles y menos probables en la siguiente ejecución.

Fuentes oficiales

Este contenido se preparó con asistencia de inteligencia artificial y fue revisado editorialmente frente a las fuentes citadas. Prueba cualquier transformación con una copia y valida sus efectos con el propietario del dato.