Capítulo 4. Limpiar datos desordenados

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

La mayoría de las veces, los conjuntos de datos estarán desordenados y serán difíciles de visualizar de inmediato. Tendrán valores que faltan, fechas en diferentes formatos, texto en columnas sólo numéricas, varios elementos en las mismas columnas, varias grafías del mismo nombre y otras cosas inesperadas. Mira la Figura 4-1 para inspirarte. No te sorprendas si te encuentras pasando más tiempo limpiando datos que analizándolos y visualizándolos.

hodv 0401
Figura 4-1. La mayoría de las veces, los datos brutos parecen desordenados.

En este capítulo, conocerás diferentes herramientas que te ayudarán a tomar decisiones sobre cuál utilizar para limpiar tus datos de forma eficaz. Empezaremos con métodos básicos de limpieza utilizando Google Sheets en "Limpieza inteligente con Google Sheets", "Buscar y reemplazar con espacios en blanco", "Transponer filas y columnas", "Dividir datos en columnas separadas" y "Combinar datos en una columna". Aunque presentamos Google Sheets en nuestros ejemplos, muchos de estos principios (y en algunos casos, las mismas fórmulas) se aplican a Microsoft Excel, LibreOffice Calc, Numbers de Mac u otros paquetes de hojas de cálculo. A continuación, aprenderás a extraer datos de tablas de documentos PDF basados en texto con Tabula, una herramienta gratuita utilizada por periodistas de datos e investigadores de todo el mundo para analizar datos de gastos, informes sanitarios y todo tipo de conjuntos de datos que quedan atrapados en PDF (consulta "Extraer tablas de PDF con Tabula"). Por último, presentaremos OpenRefine en "Limpiar datos con OpenRefine", una herramienta potente y versátil para limpiar las hojas de cálculo más desordenadas, como las que contienen docenas de grafías diferentes del mismo nombre.

Limpieza inteligente con Hojas de cálculo de Google

Una de las razones más novedosas para trabajar con tus datos en Hojas de cálculo de Google es utilizar su función de limpieza inteligente , que ayuda a identificar y sugerir correcciones para los datos inexactos. La herramienta abre un menú en la barra lateral que detecta posibles problemas, y tú decides si aceptas su sugerencia.

Descubre qué tipos de problemas detecta Smart Cleanup y cuáles pasa por alto, utilizando nuestros datos de muestra sobre las 10 naciones más pobladas del mundo, que contienen algunos problemas que hemos añadido intencionadamente:

  1. Abre el archivo de datos de muestra de Smart Cleanup en Google Sheets, accede con tu cuenta y ve a Archivo > "Hacer una copia" para crear una versión que puedas editar en Google Drive.

  2. Ve a Datos > "Sugerencias de limpieza" y mira los elementos que aparecen en la barra lateral.

    hodv 04in01

La función Limpieza inteligente ha detectado correctamente una entrada duplicada (fila 12) y espacios en blanco en las celdas A4 y A5. Haz clic en los botones verdes "Eliminar" y "Recortar todo" para confirmar que Google Sheets debe limpiarlos.

¿Puedes detectar estos otros errores que Smart Cleanup pasó por alto?

  • En la casilla A10, Rusia está mal escrita con una s de más.

  • En la celda C6, la participación de Pakistán en la población mundial aparece en forma decimal, no en porcentaje.

  • En la celda D4, la fecha de EE.UU. aparece en un formato distinto al de las demás entradas. Si estás familiarizado con los distintos formatos internacionales de fecha, también te preguntarás si 12/10/2020 se refiere al formato MM/DD/YYYY que se suele utilizar en EE.UU., o al formato DD/MM/YYYY que se suele utilizar en otros lugares. Smart Cleanup no puede responder a esto por ti.

La función de limpieza inteligente de Google Sheets es un buen punto de partida. Si tus datos están realmente desordenados, puede que necesites recurrir a herramientas más sofisticadas que se describen más adelante en este capítulo, como "Limpiar datos con OpenRefine". En la siguiente sección, aprenderás otro método de limpieza que funciona en cualquier hoja de cálculo: buscar y reemplazar con una entrada en blanco.

Buscar y sustituir por espacio en blanco

Una de las herramientas de limpieza más sencillas y potentes de toda hoja de cálculo es el comando "Buscar y reemplazar". También puedes utilizarlo para cambiar en bloque distintas grafías de un mismo nombre, como acortar el nombre de un país (de República de la India a India), ampliar un nombre (de EE.UU. a Estados Unidos) o traducir nombres (de Italia a Italia). Además, puedes utilizar buscar y reemplazar con una entrada en blanco para eliminar unidades de medida que a veces residen en las mismas celdas que los números (como cambiar 321 kg por 321).

Veamos "Buscar y reemplazar" en la práctica. Un problema habitual de los datos del Censo de EE.UU. es que los nombres geográficos contienen palabras innecesarias. Por ejemplo, cuando descargues datos sobre la población de las ciudades de Connecticut, la columna de ubicación contendrá la palabra "ciudad" después de cada nombre:

Hartford town
New Haven town
Stamford town

Normalmente quieres una lista limpia de ciudades, ya sea para mostrarla en un gráfico o para fusionarla con otro conjunto de datos, como éste:

Hartford
New Haven
Stamford

Utilicemos "Buscar y reemplazar" en un archivo de muestra del Censo de EE.UU. que descargamos con 169 nombres de localidades de Connecticut y sus poblaciones para eliminar la etiqueta "localidad" no deseada después de cada topónimo:

  1. Abre el archivo CT Town Geonames en Google Sheets, accede con tu cuenta y ve a Archivo > "Hacer una copia" para crear una versión que puedas editar en tu Google Drive.

  2. Selecciona la columna que quieres modificar haciendo clic en su cabecera. Si no seleccionas una columna, buscarás y sustituirás en toda la hoja de cálculo.

  3. En el menú Edición, elige "Buscar y reemplazar". Verás lo siguiente.

    hodv 04in02
  4. En el campo Buscar, escribe towny asegúrate de insertar un espacio en blanco antes de la palabra. Si no insertas un espacio, eliminarás accidentalmente ciudad de lugares como Middletown. Además, crearás accidentalmente espacios finales, o espacios en blanco al final de una línea sin ningún otro carácter a continuación, lo que puede causar problemas en el futuro.

  5. Deja en blanco el campo "Sustituir por". No insertes ningún espacio. Déjalo vacío.

  6. El campo Buscar debe estar ajustado al rango que seleccionaste en el paso 2, o a "Todas las hojas" si no seleccionaste nada.

  7. Tienes la opción de "Coincidir mayúsculas y minúsculas". Si está marcada, town y Town y tOwN se tratarán de forma diferente. Para nuestro propósito, puedes dejar "Coincidir mayúsculas y minúsculas" sin marcar.

  8. Pulsa "Reemplazar todo". Como este archivo de ejemplo contiene 169 ciudades, la ventana indicará que se han sustituido 169 instancias de "ciudad".

  9. Inspecciona la hoja resultante. Asegúrate de que los lugares que incluyen ciudad en su nombre, como Middletown, permanecen intactos.

Transponer filas y columnas

A veces descargas buenos datos, pero tu herramienta de visualización te obliga a transponer, o intercambiar, las filas y las columnas para crear el gráfico o mapa que deseas. Este problema surge a menudo cuando se trabaja con series temporales o datos históricos, porque se tratan de forma opuesta en tablas y gráficos. Al diseñar una tabla, el método adecuado es colocar las fechas horizontalmente como cabeceras de columna, de forma que las leamos de izquierda a derecha, así:1

| Year    | 2000 | 2010 | 2020 |
|---------|------|------|------|
| Series1 |  333 |  444 |  555 |
| Series2 |  777 |  888 |  999 |

Al diseñar un gráfico de líneas en Hojas de cálculo de Google y herramientas similares, sobre las que aprenderás en el Capítulo 6, tenemos que transponer los datos para que las fechas pasen verticalmente por la primera columna, de modo que el software las lea como etiquetas de una serie de datos, como ésta:

| Year | Series1 | Series2 |
|------|---------|---------|
| 2000 |     333 |     777 |
| 2010 |     444 |     888 |
| 2020 |     555 |     999 |

Aprende a transponer filas y columnas en nuestros datos de ejemplo:

  1. Abre el archivo de datos de muestra Transpose en Google Sheets, accede con tu cuenta y ve a Archivo > "Hacer una copia" para crear una versión que puedas editar en Google Drive.

  2. Selecciona todas las filas y columnas que quieras transponer, y ve a Edición > Copiar.

  3. Desplázate más abajo en la hoja de cálculo y haz clic en una celda, o abre una nueva pestaña de la hoja de cálculo, y ve a Edición > "Pegar especial" > "Pegar transpuesto".

    hodv 04in03

Ahora que ya sabes cómo limpiar los datos transponiendo filas y columnas, en la siguiente sección aprenderás a dividir los datos en columnas separadas.

Dividir datos en columnas separadas

A veces aparecen varios datos en una misma celda, como el nombre y los apellidos (John Doe), las coordenadas geográficas (40.12,-72.12) o las direcciones (300 Summit St, Hartford, CT, 06106). Para tu análisis, tal vez quieras dividirlos en entidades separadas, de modo que tu columna FullName (con John Doe en ella) se convierta en columnas FirstName (John) y LastName (Doe), las coordenadas se conviertan en columnas Latitude y Longitude, y tu columna FullAddress se convierta en cuatro columnas: Calle, Ciudad, Estado y Código Postal.

Ejemplo 1: División simple

Empecemos con un ejemplo sencillo de división de pares de coordenadas geográficas, separadas por comas, en columnas distintas:

  1. Abre los datos de muestra de Dividir Pares de Coordenadas en Hojas de cálculo de Google, inicia sesión con tu cuenta y ve a Archivo > "Hacer una copia" para crear una versión que puedas editar en Google Drive.

  2. Selecciona los datos que deseas dividir, ya sea la columna completa o sólo varias filas. Ten en cuenta que sólo puedes dividir los datos de una columna cada vez.

  3. Asegúrate de que no hay datos en la columna situada a la derecha de la que vas a dividir, porque todos los datos de esa columna se sobrescribirán.

  4. Ve a Datos y selecciona "Dividir texto en columnas".

    hodv 04in04
  5. Google Sheets intentará adivinar automáticamente tu separador. Verás que ahora tus coordenadas se dividen con la coma, y el Separador se establece en Detectar automáticamente en el desplegable. Puedes cambiarlo manualmente por una coma (,), un punto y coma (;), un punto (.), un espacio o cualquier otro carácter personalizado (o incluso una secuencia de caracteres, que veremos en el Ejemplo 2 de esta sección).

  6. Puedes renombrar las nuevas columnas en Longitud (primer número) y Latitud (segundo número).

Ejemplo 2: División compleja

Veamos ahora un ejemplo un poco más complicado. Cada celda contiene una dirección completa de , que quieres dividir en cuatro columnas: calle, ciudad, estado y código postal. Pero fíjate en cómo difieren los separadores: una coma entre la calle y la ciudad, un espacio entre la ciudad y el estado, y dos guiones entre el estado y el código postal. En este caso, tendrás que añadir manualmente algunas instrucciones para dividir correctamente el texto en cuatro columnas:

| Location                          |
| --------------------------------- |
| 300 Summit St, Hartford CT--06106 |
| 1012 Broad St, Hartford CT--06106 |
| 37 Alden St, Hartford CT--06114   |
  1. Abre el archivo de ejemplo Dividir dirección compleja en Hojas de cálculo de Google, accede a tu cuenta y ve a Archivo > "Hacer una copia" para guardar una versión en Google Drive que puedas editar.

  2. Selecciona la columna y ve a Datos > "Dividir texto en columnas" para empezar a dividir de izquierda a derecha.

  3. Google Sheets dividirá automáticamente tu celda en dos partes, 300 Summit St y Hartford CT--06106, utilizando una coma como separador. (Si no lo hiciera, simplemente selecciona Coma en el menú desplegable que aparece).

  4. Ahora selecciona sólo la segunda columna y vuelve a ejecutar "Dividir texto en columnas". Google Sheets separará automáticamente la ciudad del estado y del código postal, porque eligió automáticamente un espacio como separador. (Si no lo hizo, elige Espacio en el menú desplegable).

  5. Por último, selecciona sólo la tercera columna y vuelve a ejecutar "Dividir texto en columnas". Google Sheets no reconocerá los dos guiones como separador, así que tienes que seleccionar manualmente Personalizado, escribir esos dos guiones (--) en el campo Separador personalizado y pulsa Intro. Ahora ya has dividido correctamente la dirección completa en cuatro columnas.

    hodv 04in05
Consejo

Google Sheets tratará los códigos postales como números y eliminará los ceros a la izquierda (por lo que 06106 se convertirá en 6106). Para solucionarlo, selecciona la columna y ve a Formato > Número > "Texto sin formato". Ahora puedes volver a añadir ceros manualmente. Si tu conjunto de datos es grande, considera la posibilidad de añadir ceros utilizando la fórmula que se presenta en la sección siguiente.

Combinar datos en una columna

Vamos a realizar la acción inversa combinando los datos en una columna con una fórmula de hoja de cálculo , también llamada concatenación, utilizando el símbolo ampersand (&). Imagina que recibes datos de direcciones en cuatro columnas distintas: dirección, ciudad, estado y código postal:

| Street        | City       | State  | Zip   |
| ------------- | ---------- | ------ | ----- |
| 300 Summit St | Hartford   | CT     | 06106 |

Pero imagina que necesitas geocodificar las direcciones utilizando una herramienta como la que presentamos en "Geocodificar direcciones en Hojas de cálculo de Google", que requiere que todos los datos se combinen en una columna como ésta:

| Location                          |
| --------------------------------- |
| 300 Summit St, Hartford, CT 06106 |

Utilizando cualquier hoja de cálculo, puedes escribir una fórmula sencilla para combinar (o concatenar) términos utilizando el símbolo ampersand (&). Además, puedes añadir separadores en tu fórmula, como espacio entre comillas (" "), o espacios con comas (", "), o cualquier combinación de caracteres. Vamos a probarlo con algunos datos de ejemplo:

  1. Abre los datos de muestra de Combinar columnas separadas en Hojas de cálculo de Google, inicia sesión con tu cuenta y ve a Archivo > "Hacer una copia" para crear una versión que puedas editar en Google Drive. La hoja contiene direcciones separadas en cuatro columnas: calle, ciudad, estado y código postal.

  2. En la columna E, escribe una nueva cabecera llamada ubicación.

  3. En la celda E2, escribe =A2 & ", " & B2 & ", " & C2 & " " & D2. Esta fórmula combina los cuatro elementos utilizando ampersands, y los separa con comillas y espacios. Luego pulsa Intro.

  4. Haz clic en la celda E2 y arrastra la cruz de la esquina inferior derecha hacia abajo para rellenar el resto de la columna.

    hodv 04in06

Ahora que has combinado con éxito los términos en una columna de ubicación, puedes utilizar el complemento Geocoding by SmartMonkey Google Sheets que describimos en "Geocodificar direcciones en Google Sheets" para encontrar las coordenadas de latitud y longitud con el fin de mapear tus datos, como veremos en el Capítulo 7.

Para leer más, recomendamos la brillante entrada del blog Datawrapper de Lisa Charlotte Rost sobre la limpieza y preparación de datos de hojas de cálculo para su análisis y visualización.2

Las hojas de cálculo son herramientas estupendas para buscar y reemplazar datos, dividir datos en columnas separadas o combinar datos en una columna. ¿Pero qué pasa si tu tabla de datos está atrapada dentro de un PDF? En la siguiente sección, presentaremos Tabula y te mostraremos cómo convertir tablas de documentos PDF basados en texto en tablas que puedas analizar en hojas de cálculo.

Extraer Tablas de PDFs con Tabula

A veces ocurre que el conjunto de datos que te interesa sólo está disponible como documento PDF . No desesperes: probablemente puedas utilizar Tabula para extraer tablas y guardarlas como archivos CSV. Ten en cuenta que los PDF suelen ser de dos tipos: basados en texto y basados en imágenes. Si puedes utilizar el cursor para seleccionar y copiar y pegar texto en tu PDF, entonces está basado en texto, lo que es estupendo porque puedes procesarlo con Tabula; si no puedes, entonces está basado en imágenes, lo que significa que probablemente se creó como una versión escaneada del documento original. Necesitas utilizar un software de reconocimiento óptico de caracteres (OCR), como Adobe Acrobat Pro u otra herramienta de OCR, para convertir un PDF basado en imágenes en un PDF basado en texto. Además, Tabula sólo puede extraer datos de tablas, no de gráficos u otros tipos de visualizaciones.

Tabula es una herramienta gratuita que funciona con Java en tu navegador, y está disponible para ordenadores Mac, Windows y Linux. Se ejecuta en tu máquina local y no envía tus datos a la nube, por lo que también puedes utilizarla para documentos sensibles.

Para empezar, descarga la versión más reciente de Tabula. Puedes utilizar los botones de descarga de la parte izquierda o desplazarte hasta la sección "Descargar e instalar Tabula" para descargar una copia para tu plataforma. A diferencia de la mayoría de los programas, Tabula no requiere instalación. Sólo tienes que descomprimir el archivo descargado y hacer doble clic en el icono.

Advertencia

En un Mac, puede que veas esta advertencia al iniciar Tabula por primera vez: "Tabula es una aplicación descargada de Internet. ¿Estás seguro de que quieres abrirla?" Si es así, haz clic en Abrir.

hodv 04in07

Cuando arrancas Tabula, abre tu navegador por defecto como localhost con una URL similar a http://127.0.0.1/, con o sin un número de puerto adicional, como :8080, como se muestra en la Figura 4-2. Tabula se ejecuta en tu ordenador local, no en Internet. Si tu navegador por defecto (como Safari o Edge) no funciona bien con Tabula, puedes copiar y pegar la URL en un navegador diferente (como Firefox o Chrome).

hodv 0402
Figura 4-2. La página de bienvenida de Tabula.

Ahora vamos a cargar un PDF de muestra basado en texto y a detectar las tablas que deseemos extraer. Al principio de la pandemia de COVID-19, el Departamento de Salud Pública de Connecticut publicó datos sobre casos y muertes sólo en formato de documento PDF. Para esta demostración, puedes utilizar nuestro PDF de muestra basado en texto del 31 de mayo de 2020, o proporcionar el tuyo propio:

  1. Selecciona el PDF del que quieres extraer datos haciendo clic en el botón azul Examinar....

  2. Haz clic en Importar. Tabula empezará a analizar el archivo.

  3. En cuanto Tabula termine de cargar el PDF, verás un visor de PDF con páginas individuales. La interfaz es bastante limpia, con sólo cuatro botones en la cabecera.

  4. Haz clic en Autodetectar Tablas para dejar que Tabula busque datos relevantes. La herramienta resalta en rojo cada tabla que detecta.

    hodv 04in08

Ahora vamos a ajustar manualmente nuestras tablas seleccionadas y a exportar los datos:

  1. Haz clic en el botón verde "Vista previa y exportación de los datos extraídos" para ver cómo Tabula considera que deben exportarse los datos.

  2. Si las tablas de previsualización no contienen los datos que deseas, prueba a cambiar entre los métodos de extracción Stream y Lattice en la barra lateral izquierda.

  3. Si las tablas siguen sin verse bien, o deseas eliminar algunas tablas que Tabula ha autodetectado, pulsa "Revisar selección". Eso te devolverá al visor de PDF.

  4. Ahora puedes Borrar Todas las Selecciones y seleccionar manualmente las tablas que te interesen. Utiliza movimientos de arrastrar y soltar para seleccionar tablas de interés (o partes de tablas).

  5. Si quieres "copiar" la selección en algunas o en todas las páginas, puedes utilizar el desplegable "Repetir esta selección", que aparece en la esquina inferior derecha de tus selecciones, para propagar los cambios. Esto es muy útil si tu PDF consta de muchas páginas con un formato similar.

  6. Cuando estés satisfecho con el resultado, puedes exportarlo. Si sólo tienes una tabla, te recomendamos que utilices CSV como formato de exportación. Si tienes más de una tabla, considera cambiar el formato de exportación en el menú desplegable a "zip de CSVs". De esta forma, cada tabla se guardará como un archivo individual, en lugar de todas las tablas dentro de un archivo CSV.

Cuando hayas exportado los datos a tu ordenador, navega hasta el archivo y ábrelo con una herramienta de hoja de cálculo para analizarlo y visualizarlo.

Ahora que has extraído una tabla de un documento PDF, los resultados pueden estar desordenados. En la siguiente sección, limpiaremos los conjuntos de datos desordenados con una herramienta muy potente llamada OpenRefine.

Limpiar datos con OpenRefine

Abre el conjunto de datos de muestra US Foreign Aid en formato Google Sheets como que se muestra en la Figura 4-3. ¿Puedes detectar algún problema? Este extracto de datos procede del conjunto de datos US Overseas Loans and Grants (Greenbook), que muestra la ayuda económica y militar de EEUU a varios países. Elegimos incluir sólo la ayuda a Corea del Sur y Corea del Norte para los años comprendidos entre 2000 y 2018. Hemos añadido deliberadamente faltas de ortografía y problemas de formato con fines demostrativos, pero no hemos alterado los valores.

Observa cómo la columna País tiene varias grafías de Corea del Norte y Corea del Sur. Observa también que la columna Importe de la financiación no está normalizada. Algunas cantidades utilizan comas para separar los miles, mientras que otras utilizan espacios. Algunas cantidades empiezan con el signo del dólar, y otras no. Analizar conjuntos de datos como éste puede ser una auténtica pesadilla. Por suerte, OpenRefine proporciona potentes herramientas para limpiar y normalizar los datos.

hodv 0403
Figura 4-3. ¿Puedes detectar algún problema en estos datos de muestra?

Configurar OpenRefine

Utilicemos OpenRefine para limpiar estos datos desordenados. Descarga OpenRefine para Windows, Mac o Linux. Al igual que Tabula, se ejecuta en tu navegador y ningún dato sale de tu máquina local, lo que es estupendo para la confidencialidad.

Para iniciar OpenRefine en Windows, descomprime el archivo descargado, haz doble clic en el archivo .exe y la herramienta se abrirá en tu navegador predeterminado.

Para iniciar OpenRefine en un Mac, haz doble clic en el archivo .dmg descargado para instalarlo. Es probable que veas una advertencia de seguridad que impide que OpenRefine se inicie automáticamente porque Apple no reconoce al desarrollador de este proyecto de código abierto. Para resolver el problema, ve a Preferencias del Sistema > "Seguridad y Privacidad" > pestaña General, y haz clic en Abrir de todos modos en la mitad inferior de la ventana, como se muestra en la Figura 4-4. Si te aparece otra ventana, haz clic en Abrir.

hodv 0404
Figura 4-4. Si tu Mac muestra una advertencia sobre el inicio de OpenRefine, ajusta la configuración de "Seguridad y Privacidad" para abrir el programa.

Cuando inicies OpenRefine, se abrirá tu navegador por defecto con la dirección localhost 127.0.0.1, con o sin el número de puerto adicional :3333, como se muestra en la Figura 4-5. Si tu navegador habitual (como Safari) no se comporta bien con OpenRefine, copia y pega la dirección localhost en un navegador diferente (como Firefox o Chrome).

hodv 0405
Figura 4-5. La página de bienvenida de OpenRefine.

Cargar datos e iniciar un nuevo proyecto

Para empezar a limpiar un conjunto de datos desordenado, necesitamos cargarlo en un nuevo proyecto. OpenRefine te permite cargar un conjunto de datos desde tu máquina local o desde una dirección web remota (como una Hoja de Google). OpenRefine también puede extraer datos directamente de bases de datos SQL, pero eso está fuera del alcance de este libro:

  1. Abre el conjunto de datos de muestra de Ayuda Exterior de EEUU en Google Sheets, inicia sesión con tu cuenta y ve a Archivo > Descargar para guardar una versión en formato CSV en tu ordenador.

  2. En OpenRefine, en "Obtener datos de: Este ordenador", haz clic en Examinar... y selecciona el archivo CSV que descargaste. Haz clic en Siguiente.

  3. Antes de empezar a limpiar los datos, OpenRefine te permite asegurarte de que los datos se analizan correctamente. En nuestro caso, analizar significa la forma en que los datos se dividen en columnas. Asegúrate de que OpenRefine asigna valores a las columnas correctas, o cambia la configuración en el bloque "Analizar datos como", en la parte inferior de la página, hasta que empiece a tener sentido. A continuación, pulsa Crear Proyecto en la esquina superior derecha.

    hodv 04in09

Ahora que has leído correctamente los datos en un nuevo proyecto, vamos a empezar la parte divertida: convertir el texto en números, eliminar los caracteres innecesarios y corregir la ortografía de las Coreas del Norte y del Sur.

Convertir importes en dólares de texto a números

Una vez creado tu proyecto, verás las 10 primeras filas del conjunto de datos. Puedes cambiarlas a 5, 10, 25 ó 50 haciendo clic en el número correspondiente de la cabecera.

Cada cabecera de columna tiene su propio menú, que puedes seleccionar haciendo clic en su botón de flecha hacia abajo. Es probable que los números alineados a la izquierda de una columna se representen como texto, como es nuestro caso con la columna ImporteFinanciación, y haya que transformarlos a formato numérico:

  1. Para transformar texto en números, selecciona el menú de la columna ImporteFondos y ve a "Editar celdas" > "Transformaciones comunes" > "A número".

    hodv 04in10

    Verás que algunos números se volvieron verdes y alineados a la derecha, lo que indica un éxito parcial, pero la mayoría no cambiaron. Esto se debe a que el signo del dólar ($) y las comas (,) confunden a OpenRefine e impiden que los valores se conviertan en números.

  2. Vamos a eliminar $ y , de la columna ImporteFinanciación. En el menú de la columna, selecciona esta vez "Editar celdas" > Transformar..., porque tenemos que introducir manualmente la edición que queremos hacer. En la ventana Expresión, escribe value.replace(',', '') y observa cómo desaparecen las comas en la ventana de vista previa. Cuando confirmes que tu fórmula no tiene errores de sintaxis, haz clic en Aceptar.

    hodv 04in11
  3. Ahora, repite el paso anterior, pero en lugar de una coma, elimina el carácter $ escribiendo una expresión diferente: value.replace('$', ''), confirma la fórmula y pulsa OK.

  4. En los pasos 2 y 3, hemos sustituido los valores de texto (o cadena) por otros valores de texto, haciendo que OpenRefine piense que esta columna ya no es numérica. Como resultado, todos los valores vuelven a estar alineados a la izquierda y en negro. Vuelve a realizar el paso 1. Esta vez, casi todas las celdas se habrán vuelto verdes, lo que significa que se han convertido con éxito en numéricas. Sin embargo, quedarán algunas celdas negras no numéricas.

  5. Para arreglar las restantes celdas negras no numéricas, tenemos que eliminar los espacios y un carácter a al final de un número. Arréglalos manualmente pasando el ratón por encima de una celda, haz clic en Editar y, en la nueva ventana emergente, cambia "Tipo de datos" a "número" y pulsa Aplicar.

    hodv 04in12

En este punto, todos los importes de financiación deben ser números limpios, alineados a la derecha y coloreados en verde. Estamos listos para pasar a la columna País y corregir las diferentes grafías de las Coreas.

Agrupar grafías similares

Cuando combinas diferentes fuentes de datos o procesas datos de encuestas en las que los encuestados escribieron sus respuestas en lugar de seleccionarlas de un menú desplegable, puedes acabar con múltiples grafías de la misma palabra (nombre de la ciudad, nivel educativo... ¡lo que quieras!). Una de las funciones más potentes de OpenRefine es la posibilidad de agrupar respuestas similares.

Si utilizas nuestro archivo de muestra original, echa un vistazo a la columna País y a todas las variantes ortográficas de Corea del Norte y Corea del Sur. En el menú desplegable de la columna País, ve a Facet > "Facet de texto". Se abrirá una ventana en la parte izquierda con todas las grafías (y recuentos) de los valores de la columna: ¡26 opciones para una columna que sólo debería tener dos valores distintos, Corea del Norte y Corea del Sur!

  1. Para empezar a normalizar la ortografía, haz clic en el botón con la flecha hacia abajo de la cabecera de la columna País y elige "Editar celdas" > "Agrupar y editar..." Verás una ventana como ésta.

    hodv 04in13

    Podrás elegir entre dos métodos de agrupación: colisión de claves o vecino más próximo. La agrupación por colisión de claves es una técnica mucho más rápida y adecuada para conjuntos de datos más grandes, pero es menos flexible. El vecino más próximo es un método más caro computacionalmente y será lento en conjuntos de datos más grandes, pero permite un mayor ajuste y precisión. Ambos métodos pueden potenciarse mediante distintas funciones, sobre las que puedes leer en la página Wiki del proyecto. A efectos de este ejercicio, vamos a dejar por defecto el método de colisión de claves con la función de huella dactilar.

    OpenRefine calculará una lista de clusters. La columna Valores en clúster contiene grafías agrupadas que OpenRefine considera iguales.

  2. Si estás de acuerdo con una agrupación, marca la casilla "¿Fusionar?" y asigna el valor verdadero a la casilla de entrada Nuevo valor de celda, como se muestra en la primera agrupación del paso 1. En nuestro ejemplo, sería North Korea o South Korea.

  3. Puedes pasar por todas las agrupaciones, o detenerte después de una o dos y hacer clic en el botón "Fusionar seleccionados y volver a agrupar". Las agrupaciones que hayas seleccionado se fusionarán y se volverá a calcular la agrupación. (No te preocupes, la ventana no se irá a ninguna parte.) Sigue reagrupando hasta que estés satisfecho con el resultado.

    Dedica algún tiempo a jugar con los parámetros de la función Clave, y observa cómo producen agrupaciones de diferentes tamaños y precisión.

  4. Cuando hayas terminado de limpiar y agrupar los datos, guarda el conjunto de datos limpio haciendo clic en Exportar en la esquina superior derecha de la ventana de OpenRefine. Puedes elegir el formato (recomendamos CSV). Ahora tienes un conjunto de datos limpio que está listo para ser analizado y visualizado.

Resumen

En este capítulo, hemos visto cómo limpiar tablas en Google Sheets, cómo liberar datos tabulares atrapados en PDF mediante Tabula y cómo utilizar OpenRefine para limpiar conjuntos de datos muy desordenados. A menudo te encontrarás utilizando varias de estas herramientas en el mismo conjunto de datos antes de que sea lo suficientemente bueno para tu análisis. Te animamos a que aprendas más fórmulas en Google Sheets y explores las funciones adicionales de OpenRefine en tu tiempo libre. Cuantas más herramientas y técnicas de limpieza conozcas, más capaz y adaptable serás para abordar casos más complejos.

Ahora ya sabes cómo limpiar tus datos, así que pasemos al siguiente paso antes de visualizarlos. En el capítulo siguiente, hablaremos de por qué debes normalizar los datos y utilizar un lenguaje preciso para hacer comparaciones significativas.

1 Stephen Few, Muéstrame los números: Designing Tables and Graphs to Enlighten, 2ª edición (Burlingame, CA: Analytics Press, 2012), p. 166.

2 Lisa Charlotte Rost, "Cómo preparar tus datos para análisis y gráficos en Excel y Google Sheets", Datawrapper (blog), consultado el 28 de agosto de 2020, https://oreil.ly/emSQz.

Get Visualización práctica de datos now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.