Data wrangling

Autor: Julià Minguillón

Los textos e imágenes publicados en esta obra están sujetos (excepto que se indique lo contrario) a una licencia de Reconocimiento-Compartir igual (BY-SA) v.3.0 España de Creative Commons. Se puede modificar la obra, reproducirla, distribuirla o comunicarla públicamente siempre que se cite el autor y la fuente (FUOC. Fundació per a la Universitat Oberta de Catalunya), y siempre que la obra derivada quede sujeta a la misma licencia que el material original. La licencia completa se puede consultar en: http://creativecommons.org/licenses/by-sa/3.0/es/legalcode.es

1. Ciclo de vida

Descripción

El concepto data wrangling incluye todas las manipulaciones que se llevan a cabo sobre conjuntos de datos «crudos» (tal y como se han conseguido) para convertirlos en uno o más ficheros adecuados para el análisis posterior y aplicando técnicas propias de bases de datos, pero también operaciones sencillas que pueden hacerse desde la línea de pedidos del sistema operativo o desde lenguajes de programación como R o Python. Esta tarea, de las primeras que hay que realizar en cualquier proyecto de ciencia de datos, consume mucho tiempo y esfuerzos, necesarios para obtener resultados buenos después. De hecho, la palabra wrangling significa ‘tener que pelearse para obtener algo’.

En la práctica, eso quiere decir tener que inspeccionar los ficheros en crudo para detectar posibles problemas a escala de registro o de variable (por ejemplo, la presencia de valores extremos fuera de escala o su ausencia), fusionar varios conjuntos de datos en uno solo, cambiar la estructura de ficheros (lo que se conoce como pivotar), etc. Haciendo un símil con la cocina, se trataría de coger los ingredientes que hemos comprado en el mercado, descartar los inservibles, limpiar los buenos, cortarlos como corresponda y cocinar, por ejemplo, un caldo necesario para hacer un arroz después.

Enlace al recurso

https://en.wikipedia.org/wiki/Data_wrangling

Ejemplo de uso

Supongamos que tenemos un fichero que nos dice, por cada estudiante, de qué asignaturas se ha matriculado un semestre y de qué grado (algunos estudiantes hacen dos grados o más a la vez), con una fila por estudiante, semestre, asignatura y grado, por ejemplo:

estudiante;semestre;asignatura;grado
est_1;sem;as_1;grado_X
est_1;sem;as_2;grado_X
est_1;sem;as_3;grado_X
est_2;sem;as_1;grado_X
est_2;sem;as_2;grado_Y

Una operación típica de data wrangling sería convertir este fichero en otro con el siguiente formato:

estudiante;semestre;numGrados;grado;numAs;asignatura1;asignatura2;...;asignaturaN
est_1;sem;1;grado_X;3;as_1;as_2;as_3
est_2;sem;2;grado_X;1;as_1
est_2;sem;2;grado_Y;1;as_2

Donde cada línea nos dice, por cada estudiante y semestre, de cuántos grados se ha matriculado, de qué grados y de qué asignaturas de cada grado. Este formato intermedio puede ser empleado por otros scripts para generar, por ejemplo, otro fichero con todas las combinaciones de asignaturas matriculadas por las personas usuarias en un mismo grado para analizar coocurrencias de matrícula, con el objetivo de predecir las necesidades docentes, pero también la posibilidad de construir «recomendadores» de matrícula.

Además, este script que realiza la conversión entre formatos (porque obviamente se podría ir de un formato al otro sin problemas; en este ejemplo no hay ninguna pérdida de información) también podría comprobar ciertas cosas, como por ejemplo que no hay grados repetidos o asignaturas repetidas, o que tanto la asignatura como el grado se ofrecen aquel semestre, y así reforzar la consistencia de los datos.

En la asignatura Captura y preparación de datos del grado de Ciencia de Datos Aplicada de la UOC podréis aprender a trabajar con datos crudos y prepararlos para el análisis posterior.

Enlaces relacionados

Curso de IBM en Coursera sobre data wrangling: https://www.coursera.org/lecture/introduction-al-analisis-de-datos/que-es-data-wrangling-uwVMl

Curso de IBM en Coursera con herramientas para data wrangling: https://www.coursera.org/lecture/introduction-to-data-analytics/tools-for-data-wrangling-QpHrp