Debemos asumir que vivimos en un mundo imperfecto donde aquellas cosas que no controlamos difieran de lo ideal para nosotros. En ese sentido, todo analista de datos debe desconfiar de sus fuentes y, antes de proceder al análisis de datos, examinarlos y depurarlos. A este proceso se le llama Data Cleaning o Limpieza de Datos.
Un proceso de Data Cleaning identifica datos incompletos, incorrectos o no pertinentes y los substituye o elimina para que sean compatibles con otros conjuntos de datos de nuestro sistema.
Las inconsistencias en un conjunto de datos pueden haber sido causadas por los siguientes motivos:
- Modificación de las definiciones del diccionario de datos a lo largo del tiempo
- Errores de entrada del usuario
- Corrupción en la trasmisión o almacenaje
En este post llevaremos a cabo un proceso de Data Cleaning mediante el uso de un conjunto de datos sucios de ejemplo llamado “EXAMPLE_DataToClean” (hacer clic en el link para descargarlo) y la ejecución de un programa gratuito llamado Open Refine.
Objetivos de limpieza
Al abrir nuestro Excel de ejemplo nos encontramos con unos datos inconsistentes e incompletos con los cuales no podemos trabajar. Para que esta tabla nos sea útil primero debemos depurarla y, en concreto, tenemos que:
- Rellenar los espacios en blanco
- Remplazar los caracteres extraños (es decir los símbolos no alfanuméricos) con espacios.
- Homogeneizar las entradas que significan lo mismo pero que carecen de información o se han escrito incorrectamente.
- Transformar el código HTML en algo entendible.
Descarga e instalación de Open Refine
Open Refine, antes llamado Google Refine, es una aplicación de software libre para la limpieza y transformación de datos a otros formatos.
Para descargarlo debemos ir a la web de Open Refine y seleccionar el link de descargar compatible con nuestro sistema operativo. Una vez se haya descargado el archivo comprimido tenemos que extraerlo haciendo clic con el botón derecho.
Una vez descomprimido, solo nos falta ejecutar el fichero ejecutable (el que tiene símbolo de diamante) de la carpeta creada. Al hacerlo se ejecutará el programa abriéndonos una interfaz alojada en un servidor web. Por eso se nos abrirá nuestro explorador web.
Open Refine en acción
El paso previo al utilizar herramientas de limpieza es importar nuestra tabla desde Open Refine. Para ello, desde el menú “Create Project” hacemos clic en “Elegir archivos” desde la opción “Get data from This Computer”. Seguidamente seleccionamos nuestro archivo de ejemplo y le damos a “Next”. Ahora se nos muestra una previsualización de nuestra tabla como debemos hacer nada en este punto hacemos clic a “Create Project”.
Rellenar espacios en blanco
En la segunda columna (Area) vemos que solo está informada la primera fila. Para rellenar los datos en blanco copiando la primera celda debemos hacer clic en “fill down” de la opción “edit cells” que nos aparece cuando hacemos clic en la fecha a la izquierda del título de nuestra columna.
Remplazar los caracteres extraños con espacios
Para hallar y remplazar los símbolos de las celdas de la columna 3 (Street) por espacios utilizaremos la siguiente fórmula replace(value,»å»,» «) en el menú que nos aparece cuando hacemos clic en “transform” de la opción “edit cells”.
Homogeneizar las entradas que significan lo mismo
Si echamos un ojo a las celdas de la columna 4 (Street 2) podemos detectar que en muchos casos se repite la misma información de forma diferente, bien porque está escrita de forma diferente, o bien porque alguna celda contiene menos información. Para homogeneizar las celdas similares haremos lo siguiente:
- Hacemos clic en “To titlecase” desde «Common transforms» de la opción “edit cells”. De esta forma daremos a todas las celdas un formato de nombre con las primeras letras en mayúscula.
- Hacemos clic en “Cluster & Edit” de la opción “edit cells”. Se nos aparecerá un menú donde se nos siguiere diferentes alternativas basadas en cluster de similitudes para unificar celdas en una sola. Seleccionaremos todas ellas dando clic a “Select All” y seguidamente seleccionaremos “Merge Selected & Close”.
Descodificar código HTML
En algunos casos puede ser que nuestra fuente de datos sean de una web y estos estén en formato HTML. Para saber que hay detrás de cada celda seleccionaremos “Unscape HTML entities” desde «Common transforms» de la opción “edit cells”.
Et volia, con estos pasos ya tendríamos nuestro conjunto de datos depurado y listo para ser usado. 🙂
Agradecimientos
Agradezco a Paul Bradshaw y a su blog online journalist por hacer público el Excel de ejemplo “EXAMPLE_DataToClean” con el cual hemos podido ver de forma muy fácil como operar con Open Refine.
Para más información sobre cómo hacer data cleaning recomiendo leer su post “Cleaning data using Google Refine: a quick guide”
Agradezco también a openrefine.org por proporcionar este recurso tan interesante de forma gratuita y por compartir su logo opensource