Vamos a iniciar la aplicación de escritorio de OpenRefine,
que abre una nueva ventana del navegador y se ejecuta
en un puerto por defecto del equipo local.
Podemos crear un nuevo proyecto, abrir o importar un proyecto existente,
o configurar el idioma, si es necesario.
Descargue el archivo stocks.zip y busque el archivo
desde el menú "Crear proyecto" de OpenRefine.
Haga clic en Siguiente.
Esto importa el contenido del archivo a la memoria de la aplicación.
La herramienta trabaja
con archivos comprimidos o sin comprimir.
Como estos datos tienen el formato semiestructurado JSON,
seleccione el nodo raíz del árbol de JSON, que transforma los datos
en un formato tabular con filas y columnas.
Podemos preservar las cadenas vacías y realizar una limpieza básica,
como eliminar los espacios en blanco y analizar los valores numéricos.
Estas operaciones se pueden realizar en una fase posterior.
Le daremos un nombre al proyecto y procederemos a su creación.
Una vez creado el proyecto,
podemos hacer clic en todas las columnas de edición
y eliminar aquellas que no queremos del conjunto de datos.
Esto ayuda a reducir el uso de la memoria, especialmente con conjuntos grandes.
También reordenaremos algunas de las columnas de la tabla.
Ahora, el conjunto de datos es más ligero, con solo las columnas
que se utilizarán para algún análisis posterior.
Como con una hoja de cálculo, podemos ordenar diferentes columnas.
Aquí, ordenaremos la columna de volumen en orden descendente.
Los datos financieros, como el precio de las acciones,
cambian constantemente.
¿Y si nuestros datos no están actualizados y queremos
los últimos datos de la bolsa?
Utilizando Openrefine, se pueden aumentar los datos utilizando servicios web online.
Sin embargo, utilizar estos servicios web puede quitar mucho tiempo.
Para enseñar esta característica, utilizaremos un subconjunto más pequeño
de los datos de las acciones, que cargaremos en un nuevo proyecto.
Busque el archivo stocks_demo.csv en la carpeta de la sesión
y cárguelo en OpenRefine.
También crearemos un proyecto de Openrefine
y lo llamaremos "StocksDemo".
En el menú de la columna de símbolos, haga clic en Editar columna,
Añadir columna obteniendo URL.
Esto abre un cuadro donde podemos introducir la URL
de un servicio web online para aumentar los datos.
Este servicio online ofrece una API que devuelve los precios de las acciones
con un ligero retraso.
Una buena práctica es probar el servicio web desde un cliente
con un símbolo de cotización conocido y validar la respuesta del servicio.
Añadiremos esta URL y el símbolo bursátil
como parámetro disponible para cada fila.
Para ello, copie la URL en el cuadro de expresión
e inserte lo que se muestra aquí.
Ahora, la URL es diferente para cada fila con el símbolo bursátil
como parámetro de símbolo.
Damos un nuevo nombre a la columna y hacemos clic en Aceptar.
Esto podría tardar unos minutos, según la velocidad del servicio web.
Ya tenemos una nueva columna con los datos de las acciones.
Observe que los resultados están en formato XML y deben analizarse.
Consulte los manuales de OpenRefine para obtener ayuda
sobre el análisis de resultados en XML y JSON.
Por ahora, esta es la sintaxis para extraer
el precio de las acciones del documento XML.
Tras revisar los resultados, estamos listos para exportar los datos
a otra herramienta de procesamiento de datos.
En el siguiente ejemplo, utilizaremos OpenRefine para limpiar
un archivo de datos desordenado.
Descargamos el archivo customers-messy.zip
de la carpeta de la sesión y lo guardamos en el ordenador local.
El primer paso es revisar visualmente el archivo de datos en crudo
utilizando un editor de texto o un Excel y familiarizarse
con los atributos y el contenido de los datos.
Como antes, cargamos este archivo de datos en OpenRefine
y creamos un nuevo proyecto.
Una vez cargados los datos, revisamos superficialmente las columnas,
y cambiamos la codificación de caracteres a UTF-8.
Podemos cambiar algunas opciones, como los separadores de columna
o añadir una fila de cabecera.
En nuestro caso, mantendremos la configuración.
Nombramos el proyecto de limpieza y hacemos clic en Crear Proyecto.
Esto crea un nuevo proyecto con una copia del conjunto de datos original.
El siguiente paso en el proceso es examinar visualmente los datos
y comprobar cada columna en busca de errores, problemas de formato
o valores ausentes.
Podemos realizar operaciones comunes,
como eliminar espacios en blanco del texto.
Para ello, hacemos clic en la cabecera
de Nombre de contacto, por ejemplo, Editar celdas,
Recortar los espacios en blanco iniciales y finales.
Podemos realizar la misma operación en varias columnas.
Podríamos hacer operaciones básicas de encadenamiento
como en una hoja de cálculo.
Digamos que queremos combinar el nombre y los apellidos en una sola columna.
Para ello, hacemos clic en Editar columna,
Añadir columna basada en esta columna.
En el cuadro de expresión, tomaremos el valor actual
del nombre de contacto,
y añadimos un espacio seguido del valor del apellido de contacto.
Veamos los resultados
y asignemos un nombre a la nueva columna.
Por ejemplo, Nombre de contacto completo. Le damos a Aceptar.
La nueva columna se ha añadido a nuestro conjunto de datos.
Algo bueno de OpenRefine es que puedes deshacer tus operaciones pasadas.
Si ha cometido un error, puede volver a un paso anterior y corregirlo.
Esto facilita mucho hacer cambios sin perder tiempo
guardando múltiples copias de los datos.
Vamos a eliminar la columna que acabamos de crear.
Al igual que con las hojas de cálculo,
podemos realizar otras operaciones sencillas basadas en las columnas,
como cambiar el texto a mayúscula y a minúscula.
Las facetas son una función potente en muchas herramientas de limpieza de datos.
Las facetas resumen las celdas de esa columna
para dar una visión más amplia de la misma.
También permite filtrar solo un subconjunto de las filas
que desee cambiar en bloque.
Veamos cómo funciona.
Crearemos una faceta de texto en la columna del país
haciendo clic en el menú desplegable de la columna, y luego en Faceta de texto.
Podemos ver que los nombres de los países no son coherentes.
Por ejemplo, vemos Estados Unidos como "US", "USA" o "United States",
hasta con caracteres adicionales.
Además, "Netherlands" se encuentra con y sin el artículo "the".
Vemos "France" escrita tanto en mayúscula como en minúscula.
"Cluster" nos permite agrupar y editar automáticamente
valores diferentes pero similares.
Hagamos clic en el comando Cluster del marco izquierdo.
Ahora, podemos ver todas las palabras similares agrupadas
y realizar una operación de fusión.
Fusionemos todo el texto que se refiera a Estados Unidos como "USA",
a Reino Unido como "UK", etc.
Confirmamos con el botón de fusión y reagrupación.
No quedan más agrupaciones obvias.
Sin embargo, no hemos resuelto el problema de Holanda.
Elegiremos otra operación de agrupación que utiliza una métrica de distancia.
La columna del país ya está arreglada y no hay más grupos que encontrar.
Pero sigue habiendo un error.
"Norway" tiene un carácter espaciado.
Mire si puede encontrar una forma de solucionarlo.
Ahora, vamos a utilizar la herramienta para limpiar una columna numérica,
como el límite de crédito.
Primero, aplicaremos una transformación numérica en la columna
para que se reconozcan todos los números.
Algunos valores de esta columna no se reconocen como números.
Esto se debe a que hay valores alfanuméricos,
como USD o el símbolo del dólar.
Podemos corregirlo aplicando la faceta numérica.
A la izquierda, vemos un gráfico con la distribución de los datos.
Filtremos solo los valores no numéricos y cambiemos los valores de los campos
desde el cuadro de expresión.
Esta pantalla nos permite ver los valores originales,
así como los resultados cuando se aplica la expresión.
Utilizaremos la función de sustitución para reemplazar los caracteres no deseados
con espacios en blanco.
Vamos a quitar los símbolos "USD", "$" y la coma.
Como puede ver, se pueden realizar varias funciones en una sola línea.
Podemos llamarlo "encadenamiento de operadores".
Todos los caracteres alfanuméricos han sido eliminados.
Cuando hacemos clic en Aceptar, la herramienta sigue sin verlos como números.
Para ello, tendremos que usar la función "toNumber"
para convertir los valores de la faceta en valores numéricos.
Hemos probado estas operaciones en una faceta numérica.
Para aplicar los cambios al conjunto del proyecto,
copiamos la expresión y la aplicamos a una transformación de columna.
Esto garantiza que todos los valores del límite de crédito
se han convertido en números.
Una vez que hemos limpiado el resto de los datos,
estamos listos para exportar el archivo en el formato deseado.
Para este ejemplo, vamos a exportarlo como un archivo CSV
y a abrirlo para ver los resultados.
Ahora, todas las columnas tienen datos limpios,
listos para ser almacenados en una base de datos
o para su posterior análisis.