Cómo preparar tus datos para visualizaciones

Preparing data for visualizations

Python

Sin usar Tableau Prep o Alteryx

Foto de Robert Katzki en Unsplash

¿Quieres empezar tu próximo proyecto de visualización de datos? Comienza haciendo amigos con la limpieza de datos. La limpieza de datos es un paso vital en cualquier canalización de datos, transformando las entradas de datos crudos y ‘sucios’ en aquellas que son más confiables, relevantes y concisas. Se crearon herramientas de preparación de datos como Tableau Prep o Alteryx para este propósito, pero ¿por qué gastar dinero en estos servicios cuando se puede lograr la tarea con lenguajes de programación de código abierto como Python? Este artículo lo guiará a través del proceso de preparar los datos para la visualización utilizando scripts de Python, ofreciendo una alternativa más rentable a las herramientas de preparación de datos.

Nota: A lo largo de este artículo nos centraremos en preparar los datos para Tableau para visualizaciones de datos, pero los conceptos principales se aplican igualmente a otras herramientas de inteligencia empresarial.

Lo entiendo. La limpieza de datos parece ser otro paso en el ya largo proceso de dar vida a tus visualizaciones o paneles. Pero es crucial y puede ser agradable. Es cómo te familiarizas con tu conjunto de datos, obteniendo una vista detallada de los datos que tienes y no tienes, y las decisiones consecuentes que debes tomar para abordar tus objetivos finales de análisis.

Aunque Tableau es una herramienta versátil de visualización de datos, a veces la ruta para llegar a la respuesta no está clara. Aquí es donde procesar su conjunto de datos antes de cargarlo en Tableau puede ser su mayor ayuda secreta. Exploraremos algunas razones clave por las cuales la limpieza de datos es beneficiosa antes de integrarla con Tableau:

  • Elimina información irrelevante: los datos crudos a menudo contienen información innecesaria o repetitiva que puede abarrotar su análisis. Al limpiar los datos, puede eliminar los residuos y concentrar sus visualizaciones en las características de datos más relevantes.
  • Simplifica la transformación de datos : si tiene una visión clara de la visualización que desea producir, realizar estas pretransformaciones antes de cargar los datos en Tableau puede simplificar el proceso.
  • Mayor facilidad de transferencia entre equipos : cuando las fuentes de datos se actualizan regularmente, las nuevas adiciones pueden introducir inconsistencias y potencialmente romper Tableau. Con scripts de Python y descripción de código (más formalmente conocida como documentación de markdown), puede compartir y capacitar eficazmente a otros para comprender su código y solucionar cualquier problema de programación que puedan surgir.
  • Ahorro de tiempo para actualizaciones de datos: los datos que deben actualizarse regularmente pueden beneficiarse del uso de la API Hyper, una aplicación que produce formatos de archivo Hyper específicos para Tableau y permite la carga automatizada de extractos de datos al tiempo que hace que el proceso de actualización de datos sea más eficiente.

Ahora que hemos cubierto algunas ventajas de preparar sus datos, pongamos esto en práctica creando una canalización de datos simple. Exploraremos cómo la limpieza y el procesamiento de datos se pueden integrar en un flujo de trabajo y ayudar a que sus visualizaciones sean más fáciles de administrar.

Creando una canalización de datos usando scripts de Python

Imagen de autor

El viaje que tomarán nuestros datos es bastante simple: limpieza de datos, procesamiento de datos para visualización y transformación en archivos Hyper listos para Tableau para una integración sin problemas.

Una nota final antes de sumergirnos en nuestro ejemplo de trabajo es que para la conversión de archivos Hyper necesitará descargar la biblioteca pantab. Esta biblioteca simplifica la conversión de marcos de datos de pandas en extractos de Tableau .hyper. Puede completar esto fácilmente utilizando el siguiente código en la terminal de su entorno elegido (para aquellos menos familiarizados con los entornos, este es un excelente artículo introductorio sobre qué son y cómo instalar ciertas bibliotecas):

# Ejecute la siguiente línea de código para instalar la biblioteca pantab en su entornopip install pantab

Tutorial: Preparación de datos con Python explorando las licencias de vehículos eléctricos en Canadá

Las visualizaciones de datos en las que nos centraremos en producir se centran en la popularidad de diferentes fabricantes y modelos de automóviles eléctricos basados en datos disponibles del gobierno de Statistics Canada.

Es importante destacar que esto se basa en un conjunto de datos previamente explorado en mi artículo anterior: Análisis de vehículos eléctricos con R . Si estás interesado en comprender la exploración inicial del conjunto de datos y la lógica detrás de las decisiones tomadas, por favor refiérete a él para obtener más detalles. Este tutorial se centra en la construcción de los scripts de Python donde en cada paso, después de las entradas iniciales, guardaremos la salida de cada script de Python en sus respectivas carpetas, como se describe a continuación:

Imagen del autor

El proceso de carpeta asegura que el pipeline esté bien organizado y que podamos mantener un registro de cada salida del proyecto. ¡Vamos a construir nuestro primer script de Python!

Limpieza de datos

El script inicial en nuestro pipeline sigue los pasos fundamentales de la limpieza de datos, que para este conjunto de datos incluye: mantener/renombrar columnas relevantes, eliminar nulos y/o duplicados, y hacer que los valores de los datos sean consistentes.

Podemos comenzar especificando las ubicaciones de nuestros archivos de entrada y el destino para los archivos de salida. Este paso es importante ya que nos permite organizar diferentes versiones de los archivos en la misma ubicación, en este caso estamos modificando las salidas de archivos mensualmente, por lo que cada salida de archivo está separada por mes como se indica al final del nombre del archivo 2023_04 :

El siguiente código lee los archivos de entrada originales .csv y define qué columnas queremos mantener. En este caso, estamos interesados en preservar la información relacionada con el tipo de modelos comprados y descartar las columnas relacionadas con los concesionarios de automóviles o cualquier otra columna irrelevante.

Ahora podemos acortar los nombres de las columnas, eliminando espacios en blanco al principio o al final, y agregar guiones bajos para una mayor comprensión.

A continuación, después de haber comprobado que hay solo unos pocos datos nulos en el conjunto de datos, eliminaremos los datos nulos con la función .dropna. En este punto, también querría eliminar duplicados pero en el caso de este conjunto de datos en particular no lo haremos. Esto se debe a que hay una cantidad sustancial de información repetida, y en ausencia de identificadores de fila, la eliminación de duplicados resultaría en pérdida de datos.

El último paso final es guardar nuestros datos como un archivo .csv en una ubicación de carpeta adecuada que se colocaría en la carpeta clean_data de nuestro directorio compartido.

Observa cómo referenciamos el archivo usando __file__ , y especificamos el directorio del archivo usando comandos bash donde ../ indica la carpeta anterior. Esto concluye nuestro script de limpieza de datos. ¡Ahora pasemos a la fase de procesamiento de datos!

Se puede acceder al código de trabajo completo y a los scripts ensamblados en mi repositorio de Github aquí.

Procesamiento de datos para visualizaciones

Revisemos los objetivos de las visualizaciones que intentamos lograr, que buscan resaltar los cambios en la popularidad de los vehículos eléctricos registrados. Para mostrar esto de manera efectiva, queremos que nuestro conjunto de datos final, listo para Tableau, incluya las siguientes características, que codificaremos:

  • Cuentas absolutas de vehículos por año
  • Cuentas proporcionales de vehículos por año
  • Los mayores aumentos y disminuciones de vehículos registrados
  • Ranking de vehículos registrados
  • Ranking previo de vehículos registrados para comparación

Basado en las visualizaciones que intentas producir, la creación de tus columnas ideales puede ser un proceso iterativo. En mi caso, incluí la última columna después de haber construido mis visualizaciones, ya que sabía que quería proporcionar al espectador una comparación visual de las diferencias de ranking, por lo que el script de Python se ajustó en consecuencia.

Para el siguiente código nos centraremos en el conjunto de datos agregados del modelo ya que el otro conjunto de datos para marcas es muy similar. Primero definamos nuestro archivo de entrada y archivo de salida :

Observa cómo nos referimos al archivo de entrada desde la carpeta clean_data, que fue la salida de nuestro script de limpieza de datos.

El código a continuación lee los datos y crea un marco de datos de los recuentos agregados por Vehicle_Make_and_Model y Calendar_Year :

La función pivot funciona de manera similar a la función de tabla dinámica en Excel donde toma cada uno de los valores en Calendar_Year como la entrada de columna.

Luego, el script utiliza un bucle For para crear entradas per_1K. Esto calcula las proporciones de cada modelo para poder comparar cada modelo en la misma escala y crea una columna para cada año:

A partir del cálculo de las proporciones por año, podemos calcular los mayores aumentos y disminuciones de cada modelo desde el inicio del conjunto de datos en 2019 hasta el último año completo de datos en 2022.

Aquí, se utiliza la función melt para volver a pivotar las columnas separadas per_1K por año en filas, de modo que solo tengamos una columna para per_1K y sus valores asociados.

El siguiente código nos permite unir nuestros conteos absolutos y los otros cálculos que acabamos de crear.

Ahora podemos crear la columna rank utilizando los conteos de licencias y ordenar estos valores por Vehicle_Make_and_Model y Calendar_Year.

La última columna que se debe crear es la columna previous_rank utilizando la función shift.

Finalmente, podemos guardar la salida en la ruta de la carpeta clean_model en nuestro pipeline, lo que nos proporciona un conjunto de datos visual listo.

Como recordatorio amistoso, el código completo del script de Python, incluido el del conjunto de datos procesado clean_brand, se puede encontrar en mi repositorio de GitHub aquí .

Transformando tus archivos de datos finales en formatos de archivo .hyper

El paso final en nuestro pipeline es relativamente simple, ya que todo lo que nos queda por hacer es convertir los archivos procesados .csv que creamos en formatos de archivo .hyper. Esto debería ser relativamente fácil siempre y cuando hayas descargado la librería pantab como se mencionó anteriormente.

Vale la pena mencionar que en Tableau, los datos conectados pueden tener una conexión en vivo o ser extraídos. Una conexión en vivo garantiza que haya un flujo continuo de datos, con actualizaciones del origen reflejadas casi de inmediato en Tableau. Los datos extraídos implican que Tableau crea un archivo local con una extensión de archivo .hyper que contiene una copia de los datos (se puede encontrar una descripción detallada de las fuentes de datos aquí). Su principal ventaja es su capacidad de carga rápida, donde Tableau puede acceder y presentar la información de manera más eficiente, lo que es particularmente beneficioso con conjuntos de datos grandes.

El código para los scripts de conversión de archivos hyper comienza con la carga de los paquetes pandas y pantab, seguido de la lectura del conjunto de datos cleaned_model que necesitarías para Tableau.

La última línea de código utiliza la función frame_to_hyper que produce los archivos .hyper y los guarda en la carpeta hyper.

Como último paso, podemos cargar fácilmente formatos de archivo .hyper en Tableau abriendo un nuevo libro de trabajo y, en la sección seleccionar un archivo, puedes elegir el archivo de tu elección para cargar seleccionando más. Cuando cargamos nuestro archivo ev_vehicle_models.hyper, debería aparecer como una extracción de Tableau como se muestra en la captura de pantalla a continuación, ¡donde tus datos están listos para construir tus visualizaciones!

Pensamientos finales

Al incorporar una planificación cuidadosa en tus visualizaciones, puedes simplificar el mantenimiento de tus paneles a través de la creación de un pipeline de datos sencillo. No te preocupes si no tienes los recursos; los programas de codificación de código abierto como Python ofrecen capacidades poderosas. Como recordatorio final y amistoso, para acceder a los scripts de Python, por favor revisa mi repositorio de GitHub aquí.

Todas las imágenes, a menos que se indique lo contrario, son del autor.

Referencias

  1. Salesforce, Tableau Hyper API , 2023
  2. R.Vickery , A Data Scientists Guide to Python Virtual Environments , Jan 2021
  3. K.Flerlage, Tableau Data Sources Part 1: Data Source Types , Jul 2022

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Investigadores de Ciencias de la Computación crean robots modulares y flexibles

Los bloques robóticos flexibles desarrollados por científicos de la computación en el Dartmouth College, la Universid...

Inteligencia Artificial

Aprendiendo Transformers Code First Parte 1 - La Configuración

No sé tú, pero a veces mirar código es más fácil que leer papers. Cuando estaba trabajando en AdventureGPT, comencé l...

Inteligencia Artificial

Agrupación desatada Entendiendo el agrupamiento K-Means

Aprende cómo encontrar patrones ocultos y extraer conocimientos significativos utilizando el Aprendizaje No Supervisa...

Inteligencia Artificial

4 gigantes tecnológicos - OpenAI, Google, Microsoft y Anthropic se unen para la IA segura

En un movimiento histórico, cuatro de los nombres más importantes en el mundo de la inteligencia artificial se unen p...

Inteligencia Artificial

Descubriendo el Teorema de Flujo Máximo Corte Mínimo Un Enfoque Integral y Formal

En el ámbito de la optimización del flujo de redes, el Teorema de Flujo Máximo Corte Mínimo se destaca como un hito m...