Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

SQL para ciencia de datos, Unidad 6 — Funciones avanzadas para análisis, 6.1 — Funciones de texto ·

Limpieza de strings

Limpieza de strings

Introducción

En la ciencia de datos, los strings son una parte integral de cualquier conjunto de datos. Sin embargo, las cadenas de texto a menudo presentan desafíos únicos en términos de limpieza y preparación para el análisis. SQL proporciona herramientas valiosas para manejar estos desafíos. En este artículo exploraremos cómo utilizar funciones de texto en SQL para realizar una limpieza efectiva, identificaremos errores comunes y ofreceremos un checklist accionable.

Explicación principal con ejemplos

Funciones básicas de texto en SQL

SQL ofrece varias funciones útiles para manipular strings. Algunas de las más utilizadas son:

  • LENGTH(str): Devuelve la longitud de una cadena.
  • SUBSTRING(str, start, length): Extrae un subconjunto de caracteres desde una cadena.
  • TRIM([BOTH|LEADING|TRAILING] 'char' FROM str): Elimina espacios o otros caracteres del principio y/o final de una cadena.
  • REPLACE(old_str, new_str, count): Reemplaza todas las apariciones de old_str con new_str.
  • LOWER(str) y UPPER(str): Convierte el texto a minúsculas o mayúsculas.

Ejemplo práctico

Supongamos que tenemos una tabla llamada clientes con un campo nombre_completo. Queremos limpiar este campo de espacios en blanco adicionales y convertirlo a minúsculas:

SELECT nombre_completo, 
       TRIM(BOTH ' ' FROM LOWER(nombre_completo)) AS nombre_limpio
FROM clientes;

Funciones condicionales

En algunas situaciones, es útil aplicar lógica condicional a la limpieza de strings. SQL proporciona el CASE statement para esto:

SELECT nombre_completo,
       CASE 
           WHEN TRIM(BOTH ' ' FROM LOWER(nombre_completo)) = '' THEN 'Nombre no válido'
           ELSE TRIM(BOTH ' ' FROM LOWER(nombre_completo))
       END AS nombre_limpio
FROM clientes;

Errores típicos / trampas

A pesar de las herramientas disponibles, la limpieza de strings puede ser engañosa y llevar a errores. Aquí hay algunas situaciones comunes:

  1. Espacios adicionales: A menudo, los datos contienen múltiples espacios en blanco entre palabras o al final/inicio de una cadena.
  2. Caracteres no ASCII: Algunos strings pueden contener caracteres especiales que no están claros para el analista.
  3. Mayúsculas y minúsculas: Variaciones en mayúsculas y minúsculas pueden causar inconsistencias en los datos.

Ejemplos de errores

  • Espacios adicionales:
  SELECT nombre_completo, 
         TRIM(BOTH ' ' FROM LOWER(nombre_completo)) AS nombre_limpio
  FROM clientes;
  • Caracteres no ASCII:
  SELECT nombre_completo, 
         REPLACE(nombre_completo, '¡', '') AS nombre_sin_asteriscos
  FROM clientes;
  • Mayúsculas y minúsculas:
  SELECT nombre_completo, 
         CASE 
             WHEN LOWER(nombre_completo) = 'julio' THEN 'Julio'
             ELSE nombre_completo
         END AS nombre_formateado
  FROM clientes;

Checklist accionable

Para asegurar una limpieza efectiva de strings en SQL, sigue estos pasos:

  1. Identificar el campo: Determina cuál es el campo que requiere limpieza.
  2. Utiliza TRIM para eliminar espacios adicionales:
   SELECT nombre_completo, 
          TRIM(BOTH ' ' FROM nombre_completo) AS nombre_limpio
   FROM clientes;
  1. Reemplaza caracteres especiales:
   SELECT nombre_completo, 
          REPLACE(nombre_completo, '¡', '') AS nombre_sin_asteriscos
   FROM clientes;
  1. Convierte a minúsculas o mayúsculas según sea necesario:
   SELECT nombre_completo, 
          LOWER(nombre_completo) AS nombre_minusculas
   FROM clientes;
  1. Aplíca condicionales con CASE:
   SELECT nombre_completo, 
          CASE 
              WHEN TRIM(BOTH ' ' FROM LOWER(nombre_completo)) = '' THEN 'Nombre no válido'
              ELSE TRIM(BOTH ' ' FROM LOWER(nombre_completo))
          END AS nombre_limpio
   FROM clientes;

Cierre con "Siguientes pasos"

La limpieza de strings es un paso crucial en el proceso de análisis de datos. Al seguir los consejos y ejemplos proporcionados, podrás asegurarte de que tus datos estén listos para el análisis efectivo.

  • Verifica manualmente: Asegúrate de revisar algunos registros aleatorios después de la limpieza.
  • Documenta todo: Mantén un registro detallado de los cambios realizados en los datos.
  • Prueba con conjuntos pequeños: Antes de aplicar cambios a toda tu base de datos, prueba con una muestra pequeña.

Sigue mejorando tus habilidades en SQL y prepara tus datos para análisis más precisos.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).