Introducción a la limpieza de datos

Site: Universidad de la República
Course: Datos Abiertos como Recursos Educativos Abiertos - 2021
Book: Introducción a la limpieza de datos
Printed by: Guest user
Date: Saturday, 14 December 2024, 8:18 AM

1. Explorar los datos

Autora: Camila Salazar para Escuela de Datos

La limpieza de los datos comienza por conocer con qué datos estamos trabajando y qué características tienen los mismos. Para ellos revisamos la metadata que describe las variables de la base de datos.

En este paso es importante identificar:

      Qué formato debería tener cada variable. Por ejemplo, una variable de 
salario debería ser numérica y una de nombre debería estar guardada 
como texto. 


      Cuáles son las categorías de cada variable. 


      Identificar las unidades de medida. Por ejemplo identificar si una 
variable salarial está medida en colones o dólares. 


      Tener claro características de variables específicas. Por ejemplo, si 
estamos trabajando con una base de datos de Costa Rica y hay una variable de cédula de identidad deberíamos saber que el número de cédula de personas nacidas en Costa Rica tiene 9 dígitos, por lo que si alguna observación tiene más o menos números hay que revisarla. 


Una vez que tenemos claro cómo deberían estar construidas las variables, comenzamos a explorar la base de datos para identificar posibles errores. 


Si estamos utilizando hojas de cálculo, los filtros y la función buscar y reemplazar son herramientas que permiten limpiar los datos. 


Para los ejemplos siguientes se utilizará una base de datos de salarios de la Universidad de Costa Rica (a menos que se indique lo contrario) que pueden descargar de este link: http://bit.ly/1J6B6kY  


2. Empezar a limpiar la información

Modificar el formato de los datos 

En la base de datos del ejemplo tenemos solamente 4 variables que deberían tener los siguientes formatos:

  • Puesto: texto
  • Salario: numérica
  • Jornada: numérica
  • Años de servicio: numérica.

Para verificar el formato de los datos nos posicionamos en la primera observación de cada columna y con ayuda de CTRL+SHIFT+flecha hacia abajo, seleccionamos toda la columna.

En la barra superior buscamos la opción que diga Format (Formato) y damos click en la primera opción que dice Number. Al hacer esto se despliega una lista con los diferentes posibles formatos de la variable, y seleccionamos el formato correcto para cada una de las variables.


TIP: las variables de texto se alinean a la izquierda y las numéricas a la derecha, por lo que si vemos un número alineado a la izquierda es una mala señal. Otra forma de identificar si el formato numérico está correcto es realizando una operación sencilla, por ejemplo una suma.

Si da error, posiblemente el formato no sea el adecuado. En la base de datos de salarios, si bien cambiamos el formato de la columna salario a numérico, nos damos cuenta que los números siguen alineados a la derecha. Esto se debe a que además de números tenemos caracteres de texto (que se repiten en todas las celdas), por lo que tenemos que eliminarlos.

Para hacer esto usamos la función Buscar y reemplazar. Primero seleccionamos con CTRL+C los caracteres que queremos eliminar.


Luego damos clic en Edit y buscamos la opción que diga Find and Replace. En el recuadro que se despliega pegamos los caracteres que queremos reemplazar en Find y en Replace with dejamos el recuadro en blanco, ya que queremos eliminar dichos caracteres.

 

No obstante a pesar de que quitamos los caracteres los números siguen alineados a la izquierda. Esto se debe a que dependiendo de cómo tenga configurado su Excel, el programa separa miles y decimales con comas y puntos, es decir, la cifra puede aparecer como 5,200.25 o 5.200,25. Si el Excel está en español normalmente se utiliza la coma para separar decimales y el punto para separar miles; caso contrario si el Excel está en inglés. Es decir ¡cuidado con los puntos y comas cuando trabaja con números!

Para solucionar el problema usamos nuevamente la función Find and Replace. Es muy importante usar la lógica para identificar qué es el valor que queremos sustituir primero. En este caso ponemos en Find . (un punto) y Replace lo dejamos en blanco, ya que lo que queremos eliminar son los puntos. Damos clic en Replace all. Luego hacemos lo mismo pero sustituyendo las comas por puntos. Al hacer esto solucionamos el problema y la variable queda guardada como numérica.


3. Filtrar y ordenar datos

Otra forma de identificar posibles errores es por medio de filtros. Los filtros permiten establecer criterios específicos sobre la información de interés que estamos buscando, por ejemplo ordenar los datos de mayor a menor, identificar las categorías de las variables o seleccionar solamente unas de estas categorías.

Para aplicar un filtro, posiciónese sobre la primera fila en el encabezado de la variable que desee filtrar, y en la parte superior seleccione la figura que parece un embudo. Luego de clic en el triángulo que aparece debajo de la celda.


En este ejemplo supongamos que queremos ver cuáles son las diferentes categorías de puestos, por lo que damos clic en el triángulo para ver las opciones de la variable.Al hacer esto nos damos cuenta que hay diferentes categorías para profesores, directores, técnicos, etc, por lo que podríamos tratar de unificar las categorías para tener menos. Esto veremos cómo hacerlo con Open Refine.

 

También podríamos querer ordenar de mayor a menor la variable de salario para ver si hay valores muy bajos. Para hacer esto solamente seleccionamos la opción en el recuadro que diga Sort A!Z (menor a mayor) o Sort Z!A (mayor a menor).


4. Convertir texto en columnas

En ocasiones una misma celda contiene información de dos variables. Por ejemplo supongamos que tenemos una lista de nombres con apellidos, pero todo guardado en una misma columna. Tendría más sentido separar en una columna el nombre y en otra el apellido. Para hacer esto podemos usar una función de Excel que permite separar las columnas (en google spreadsheets no está disponible). En la parte superior damos clic donde diga Data (datos) y luego en la opción que dice Text to Columns (texto a columnas).

 

Aparece un recuadro y seleccionamos la opción Delimited (delimitado). En este caso observamos que los valores que queremos separar están separados por un espacio, por lo que seleccionamos dicha opción. Inmediatamente observamos que se separan las columnas. Damos clic en siguiente dos veces y obtenemos el resultado deseado.


Para ver más sobre cómo limpiar datos con hojas de cálculo: http://schoolofdata.org/handbook/recipes/cleaning-data-with-spreadsheets/   

5. Limpieza con Open Refine

Cómo cargar un archivo

Abrimos Open Refine y seleccionamos importar archivo. También podemos utilizar archivos guardados en el Google Drive. Damos clic en siguiente.


En la parte superior podemos cambiar el nombre del proyecto y luego seleccionamos create Project. Nuestro proyecto queda listo para empezar a trabajar.

6. Reemplazar valores

Supongamos que queremos reemplazar los caracteres de texto de la variable salario. Para ello, damos clic en el triángulo que aparece en la parte superior y seleccionamos la opción de Edit Cells y luego seleccionamos Transform (Transformar).


En el recuadro de “Expression” escribimos value.replace(“#”, “$”), en donde # sería el valor que queremos reemplazar y $ sería el valor por el que queremos reemplazarlo. En este caso la fórmula sería: value.replace(“â”, “ ”). Luego damos clic en OK y vemos que se realizó el cambio.

Realizar el mismo ejercicio para reemplazar los puntos por comas.


7. Cambiar el formato de los datos

Ahora si queremos cambiar el formato de los datos en la opción de edit cells seleccionamos common transforms y seleccionamos la opción to numbers. Esto nos convierte la columna de salarios a una columna numérica. NOTA: es importante observar que al hacer el cambio los datos cambian a color verde y se alinean a la derecha.



8. Ordenar datos

Seleccionamos la opción Sort y la opción que queramos dependiendo de cómo queramos ordenar los datos, por ejemplo de mayor a menor o menor a mayor, o alfabéticamente, entre otros.



9. Remover espacios en blanco

Seleccionamos la Edit Cells, Common Transforms y Trim leading and trailing whitespace.



10. Crear facetas

Las facetas son filtros que aplica Open Refine para identificar los valores de las diferentes observaciones que tiene cada columna. Además suma el número de observaciones que tienen el mismo valor. Las facetas pueden ser de Texto o numéricas. 

Para aplicar una faceta, por ejemplo a la columna “Puesto”, damos click en el triángulo azul, luego en Facet y finalmente en Text facet.


Al hacer esto observamos que en un recuadro a la derecha aparece un listado de los valor de la columna y contabiliza cuántos se repiten. Por ejemplo observamos que existen 2229 profesores interinos licenciados, 649 profesores instructores mientras que solamente hay un rector.


Si quisiéramos modificar un dato para reagruparlo, por ejemplo si identificamos un error ortográfico, damos clic al lado de la observación donde dice Edit, hacemos el cambio y damos clic en Apply.


Como podemos observar hay muchos puestos diferentes que tal vez quisiéramos reagrupar en menos categorías para simplificar el análisis. Para ello usamos la función Cluster, que se encuentra a la derecha del recuadro de la faceta.


La función Cluster de Open Refine permite agrupar observaciones que aunque están escritas diferente, son similares y podrían ser representaciones alternativas de una mismas expresión. Por ejemplo si tenemos San José y san jose, probablemente se refiere a la misma provincia, salvo que tienen una diferencia en las mayúsculas y la tilde.

En este caso supongamos que queremos agrupar diferentes puestos. Al dar clic en Cluster se despliega una nueva ventana. Open Refine tiene varias opciones para hacer el cluster:

  • Fingerprint: busca diferencias ortográficas, como por ejemplo San José vs San Jose. 
  • N-gram fingerprint: identifica caracteres que se repiten más de n veces. Por ejemplo: Garro vs Garrro
  • Metaphone3: identifica palabras que pueden sonar parecido.



Para el ejemplo vamos a seleccionar la opción de metaphone3. Al hacer esto 
observamos que se agrupan puestos similares. 


Si quisiéramos agrupar todos aquellos puestos que comiencen con profesor invitado en una misma categoría, escribimos en el espacio de la derecha e nombre con el que queremos agrupar, seleccionamos el recuadro blanco y abajo damos clic en “Merge Selected & Re-Cluster”. Podemos repetir el procedimiento para todos aquellos valores que queramos reagrupar. 


NOTA: Open Refine guarda automáticamente todos los cambios que vayamos realizando. Estos se pueden revisar en la pestaña de Undo/Redo.

Una vez que realizamos todos los cambios podemos exportar la base de datos limpia, dando clic en la opción Export, al lado derecho de la pantalla. Ahí seleccionamos el formato en el que queramos exportar los datos.