Automatizar la limpieza de datos es una de las ventajas más prácticas que ofrecen los modelos de lenguaje aplicados a código. Usando herramientas como GitHub Copilot dentro de un IDE, es posible generar funciones de limpieza directamente sobre un data frame de pandas, ahorrando tiempo y reduciendo errores manuales en proyectos de ingeniería de datos o analítica.
¿Cómo se obtienen los datos para limpiar con web scraping?
El punto de partida es un script de web scraping aplicado a TechCrunch, un portal de noticias tecnológicas [0:22]. Este script extrae cinco campos y los organiza en un data frame:
- Título de la noticia.
- Link de la fuente original.
- Fecha de publicación en formato de fecha y hora.
- Autor del artículo.
- Breve resumen del contenido.
Con los datos ya estructurados, el siguiente paso es aplicar transformaciones de limpieza usando inteligencia artificial como asistente de código.
¿Cómo separar fecha y hora en columnas distintas?
Una tarea frecuente es dividir una columna de datetime en dos columnas independientes. Basta con escribir una instrucción en lenguaje natural dentro del IDE: "escribe una función para separar la fecha de la hora en dos columnas diferentes de la columna date" [1:05]. GitHub Copilot genera automáticamente una función llamada split_date que produce una columna para la fecha y otra para la hora.
¿Cómo eliminar duplicados y valores nulos con una sola función?
Otro paso habitual es solicitar: "crea una función para eliminar duplicados y reemplazar los valores nulos por NA" [1:41]. La función resultante, clean_data, ejecuta drop_duplicates() y fillna() de pandas, dos métodos esenciales para garantizar la integridad del dataset antes de cualquier análisis.
¿Qué limpieza se puede hacer sobre datos de la API de Twitter?
En un segundo ejemplo se conecta la API de Twitter mediante llaves almacenadas en variables de entorno [2:17]. El data frame resultante contiene el texto del tweet, el usuario que lo publicó y un flag booleano que indica si es un retweet.
¿Cómo extraer el usuario original de un retweet?
Para identificar al autor original cuando is_retweet es True, se genera la función get_original_user [2:48]. Esta función toma el primer fragmento del texto separado por dos puntos y lo asigna a una nueva columna. Cuando el resultado inicial conserva caracteres no deseados como "RT", se crea una segunda función que elimina los espacios en blanco y las letras RT del campo original_user si el texto empieza con esa marca [3:32]. Este proceso iterativo demuestra que la IA no siempre genera código perfecto en el primer intento, pero permite corregir rápidamente con nuevas instrucciones.
¿Cómo eliminar emojis y caracteres no ASCII de un data frame?
Cuando la base de datos destino no soporta caracteres fuera del rango ASCII, es necesario limpiar emojis y símbolos especiales. La instrucción "crea una función para eliminar todos los emoji de la columna text" genera código que filtra caracteres no ASCII de cada registro [4:07]. El resultado es un texto limpio, listo para almacenarse o procesarse sin errores de codificación.
Este flujo de trabajo aplica no solo a data frames de pandas, sino también a estructuras de SQL o cualquier otro lenguaje de programación [4:35]. La clave está en describir con claridad la transformación deseada y revisar el código generado antes de ejecutarlo.
Ahora es un buen momento para probar este mismo ejercicio con otras herramientas basadas en IA, como ChatGPT o Bing Chat, y compartir en los comentarios qué resultados obtienes o qué herramienta prefieres para la limpieza de datos.