Data cleaning con Open Refine

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:

  1. Rellenar los espacios en blanco
  2. Remplazar los caracteres extraños (es decir los símbolos no alfanuméricos) con espacios.
  3. Homogeneizar las entradas que significan lo mismo pero que carecen de información o se han escrito incorrectamente.
  4. 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.

diapositiva1

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”.

diapositiva2

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:

  1. 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.
  2. 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”.

diapositiva3

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

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s