Llamado de solidaridad para los usuarios de Excel

Cuando se habla de big data, por lo general la gente común siente que es algo super lejano, un poco de culpa tienen los noticieros tendenciosos, pero al fin y al cabo estamos hablando de muchos datos, que es básicamente para lo que se usan herramientas como excel. Excel y todos los programas similares son muy buenos cuando los datos son relativamente pocos, pero con muchos datos, la situación se complica y se ve vulnerable la velocidad de procesamiento hasta un momento que es prácticamente inutilizable (y solo por los datos, no vamos a hablar hoy como es que el último excel, consume tantos recursos que hasta con la computadora mas nueva se traba, por mas que desde el 95, los excel's son prácticamente lo mismo).Con muchos datos ya se tienen que utilizar otras herramientas como python, el problema, muchas veces, es la transición entre estos 2, para verlo mejor veamos un caso práctico:


En una empresa se necesita hacer un ensayo a una máquina y alguien dice "Guardemos los datos para tenerlos después", por lo que el subordinado, durante el ensayo toma un excel y pone los datos uno debajo del otro. Luego pasan unas semanas, y otra persona que corresponde al mismo puesto de trabajo debe hacer el mismo ensayo al mismo equipo, por lo que, toma la planilla de calculo y para no modificar mucho, agrega los datos del ensayo en otra hoja. Estos 2, sin darse cuenta crearon un formato que luego, si se tiene que hacer el ensayo muchas veces, quien toma la planilla reconoce y replica ("si los antiguos lo hicieron de esa forma, por algo debe ser"). Después de mucho tiempo, el jefe decide utilizar esos datos para realizar un mantenimiento predictivo del equipo por lo que llama a un analista o científico de datos para que genere un algoritmo, y él es el final de la cadena que sufre por tener datos inutilizables los cuales tendrá que pasar horas ordenándolos y limpiándolos.

Vamos a mostrar como un caso sencillo puede dar varios dolores de cabeza, y como no podía ser de otra forma, vamos a mostrar algunas formas de limpiar datos con datos sucios del sistema de cloacas de Mendoza (Da bum ts!).

Ranking sobre la "mierda"

Nuestro objetivo será hacer un ranking de los distintos departamentos para ver quien tiene menor quejas por usuario.

Los datasets que utilizaremos son los siguientes: 

Como verán el segundo dataset no indica quien tiene mas problemas, indica la cantidad de quejas, lo cual no es precisamente lo mismo pero nosotros lo vamos a tomar como que si (osea, ranking de mierda, no se que precisión esperaban)


Los datos

Dataset de usuarios

Estos corresponden al año 2017 (los últimos que encontramos disponibles), es el detalle de los reclamos que ingresaron al Ente Provincial del Agua y Saneamiento.

Dataset de recursos

Al igual que los datos anteriores, corresponden al año 2017 (los últimos que encontramos disponibles), corresponden a diversos operadores que tienen a su cargo la prestación de los servicios de agua potable y cloacas

De estos datos ya podemos sacar algunas conclusiones, podemos ver que algunos departamentos no tienen quejas, lo que nos puede indicar algunas cosas como:

  • Tienen buen servicio;
  • No contestan el teléfono,;
  • A sus quilombos, ni los registran;

La limpieza

Nosotros vamos a utilizar Python con la librería pandas, pero si no conoces mucho de este lenguaje no te hagas drama, vamos a explicar paso a paso que es lo que se hace en cada punto.

En el código lo primero que hicimos fue tomar los datos de Internet, si les interesa pueden ver como lo hicimos en nuestro github esta bien explicado.

Limpieza

Lo primero que podemos ver es que en uno de los datasets, alguien puso 2 filas de encabezados, y uno completamente inútil, por lo que lo tendremos que quitar. Y esto es lo primero que se pedirá a los usarios de excel, usar solo un encabezado.

Pequeño extracto de código:


Luego nos encontramos que en un dataset, los departamentos están con minúscula sin acento y en otro están con la primera letra en mayúscula y con acento si corresponde, como para la computadora "Junín" y "junin" son 2 lugares completamente distintos, tendremos que homogeneizar, y la forma mas fácil es haciendo todo minúscula y quitándole los acentos (Sí, es mas fácil nivelar hacia abajo). Acá el pedido para los amigos de Bill Gates que usan office es unificar denominaciones, tanto mayúsculas como acentos como otras cosas que pueden pasar.

Pequeño extracto de código:


Otro de los problemas que tuvimos es, como síntoma de lo primero que nos paso, es que teníamos algunas columnas de números que para la computadora eran palabras, osea, teníamos valores "1207" que para la computadora no era mil docientos siete, sino que era una palabra formada por 4 caracteres. Acá la recomendación es la misma que la primera pero por favor tomen conciencia de que estas cosas representan mucho tiempo de un programador.

Pequeño extracto de código:


Estas son algunas cosas que hicimos, nuestro código completo lo pueden encontrar aquí, donde encontraran también este gráfico.

Al final el podio del ranking nos quedo asi:

    quejas / usuario departamento junin     1.826 % san martin     1.097 % guaymallen     0.342 % ...

¿Que tener en cuenta?

En resumen, si usas excel, por favor aplica estos consejos:

1. Filas y Columnas

Determinar que datos pondrás en las filas y en las columnas de tu tabla,busca que el dato este en la fila y que cada columna sea una característica de el. 

Ademas esto te va a ayudar en caso de que los datos crezcan, en la práctica es mas fácil desplazarse verticalmente para ver mas datos que horizontalmente. 

2. Las columnas son gratis

Definí que característica va en cada columna respetá tu decisión. No utilices columnas para colocar una característica en un caso y otras características en otro, coloca nuevas columnas. 

De la misma forma si necesitas escribir una explicación utiliza una columna nueva, no lo mezcles con los datos, como dice la filosofía de python "ningún caso especial es lo suficientemente especial como para quebrar las reglas"

3. Encabezados

Hacé que los encabezados estén en una fila y sin combinar celdas, esto no solo ayudará si en un futuro querés aplicar big data, también te será de gran ayuda si quieres aplicar tablas dinámicas en tu hoja de excel.

4. Validación de datos

Si en alguna columna tenes que escribir cosas que se repetirán, no utilices copiar y pegar, incluí una validación de datos en esa columna, de esta forma no solo homogeneizas los datos y haces mas fácil un traspaso, sino que también haces la tabla mas amena para completar, ya que tendrá una lista desplegable, y ni hablar que te ahorras los errores de tipeo.

5. Data separada de las conclusiones

Este punto es un tanto más personal, pero les pido que prueben hacerlo, si mantienen los datos tomados en la segunda hoja, pueden guardar la primera para gráficos y resúmenes lo que se conoce como "Dashboard" , que no solo es súper práctico y rápido para analizar, sino que también pueden ser visualmente hermosos, y si, la legibilidad cuenta <3.

Conclusiones

Finalmente, podemos decir que, si trabajamos por primera vez bien las cosas desde su inicio, podríamos tener más tiempo para dedicar el trabajo al problema y algoritmo particular y no a estar depurando una PLANILLA DE EXCEL o depurar los datos para que sean legibles y homogéneos. 
Por ende le pedimos que le tenga piedad a su científico de datos y no lo haga laburar de mas.



¿Necesitas ayuda?
Podes hacer preguntas aca abajo en los comentarios o en nuestros perfiles de linkedin que puedes encontrar en este link. Si estas buscando ayuda en proyectos grandes, nos podes contratar por medio de nuestra consultora haciendo click en este link . Hacemos ingenieria electromecanica, civil, desarrollo de software y varias cosas mas.

Comentarios

Entradas populares de este blog

Jugá mejor al truco usando ciencia de datos

¿Se pueden escribir algoritmos que evolucionen por si mismos? (Algoritmos genéticos/evolutivos)