EDA: Un primer acercamiento con tres librerías fáciles de implementar.

Agustina Rafia
AvengaLATAM
Published in
7 min readAug 25, 2023

EDA o Análisis Exploratorio de Datos (Exploratory Data Analysis) ¿de qué hablamos? ¿De conocer el tamaño del archivo y las columnas que lo componen? ¿Realizar un par de gráficos para comprender de manera más simple como se distribuyen los datos? Bueno, en parte.

Explorar es más que sólo mirar o describir. Implica dirección, intención. Cuestionar con un objetivo, indagar con una guía que permite llevar un método más ordenado y sistemático para obtener la información necesaria y pasar a la siguiente etapa, sea cual fuere. De esta forma se busca, en primer lugar, conocer los datos. En segundo lugar, determinar la calidad de los mismos prestando especial atención a valores faltantes o atípicos. Y siempre, teniendo presente la pregunta que estructura el proyecto del que forma parte esta etapa en particular.

En este artículo se comparan tres librerías de Python que facilitan un primer acercamiento al procesamiento de los datos, generando reportes de análisis exploratorios de manera automática. Las tres librerías fueron ejecutadas en una notebook de Google Colab, de manera sencilla y con unas pocas líneas de código.

¿Cómo realizamos este primer acercamiento?

Se plantea la siguiente situación: una editorial busca elegir nuevos proyectos para este año y para seleccionarlos, se analizará el listado de los libros Bestselling de Amazon de la última década.

En primer lugar, se realiza una vista general del conjunto de datos. Se determina su composición, se visualizan las columnas y se intenta comprender qué indica cada una. Leer las primeras filas o registros quizás permita esclarecer y comenzar a formular primeras conclusiones de los distintos tipos de datos que lo integran.

A continuación, se presentan los reportes de las tres librerías seleccionadas.

SweetViz

Instalación: Instalar la librería e importarla llevó un total de 8 segundos.
El reporte fue generado en 4 segundos. Lograr la visualización del reporte dentro de la misma notebook, llevó 1 segundo.

!pip install sweetviz

import sweetviz as sv
import pandas as pd

data = pd.read_csv(data)

report = sv.analyze(data)
report.show_notebook()

Descripción del informe: Se genera un reporte interactivo. En la sección superior derecha, se encuentra información general del conjunto de datos. Cada una de las variables se visualiza en tarjetas individuales y en cada una de estas, se presentan más detalles como la cantidad de valores correctos, nulos, valores únicos, entre otras cosas.

Si la variable es categórica, al seleccionar la tarjeta se visualiza la frecuencia con que se repite cada valor. Así como el porcentaje de valores únicos en relación al total.

Si la variable es numérica, en la parte superior de la tarjeta se visualizan datos estadísticos descriptivos. Se observa un gráfico para una mejor representación de los valores, y una sección aparte de puntajes de correlación con otras variables numéricas y categóricas. Al finalizar la tarjeta, se presenta una tabla con los valores más altos, bajos y más frecuentes.

Por último, dentro de la sección de información general del conjunto de datos, se puede seleccionar “Asociaciones”, que presenta en un gráfico los distintos valores de asociaciones entre variables.

Pandas Profiling

Instalación: Instalar la librería e importarla llevó un total de 48 segundos. El reporte fue generado en menos de 1 segundo. Lograr la visualización del reporte dentro de la misma notebook, llevó 1 segundo.

!pip install pandas-profiling
import pandas as pd
from pandas_profiling import ProfileReport

profile = ProfileReport(data, title='Informe de Análisis Exploratorio de Datos', explorative=True)
profile.to_widgets()

Descripción del informe: Se genera un reporte interactivo. En la sección superior derecha, se encuentra una barra de categorías para navegar fácilmente por el mismo. La primera sección es de información general del conjunto de datos y con “alertas” que indican algunas características especiales. Cada una de las variables se visualiza en tarjetas individuales, y en cada una de estas, se presentan más detalles como la cantidad de valores correctos, nulos, valores únicos, entre otras cosas.

Si la variable es categórica, al seleccionar la tarjeta se visualiza la frecuencia de cada valor. También recuento de palabras que componen cada valor, y largo de las mismas.

Si la variable es numérica, se visualizan datos estadísticos descriptivos. Se observa un gráfico para una mejor representación de los valores, así como un detalle de valores más frecuentes y extremos.

Desde la barra de secciones, se puede seleccionar para visualizar las interacciones entre las variables de manera interactiva. De la misma manera se puede interactuar con las correlaciones entre variables, en vista de tabla o mapa de calor.

Por último, hay una sección de valores vacíos y de visualización en tabla de una muestra del conjunto de datos.

D Tale

Instalación: Instalar la librería e importarla llevó un total de 29 segundos. El reporte fue generado en 1 segundo, y dispone de un enlace para visualizarlo en el navegador.

!pip install dtale 

import dtale
from dtale.views import startup

import dtale.app as dtale_app

dtale_app.USE_COLAB = True

dtale.show(data)

Descripción del informe: En primer lugar, se visualiza el conjunto de datos completo, con una barra superior de distintas opciones. A su vez, para obtener mas opciones de cada columna, debe presionarse cada una de ellas.

Si la variable es categórica, al seleccionar se visualiza la información general, la cantidad de veces en que se repite cada valor, así como también cada palabra y caracter. Esta información se representa de manera numérica y gráfica.

Si la variable es numérica, se visualiza información general de la misma, así como datos estadísticos descriptivos. Se observa un gráfico para una mejor representación de los valores (es interactivo, pueden realizarse modificaciones en el mismo). Al final de la sección de cada variable, se indican valores únicos y atípicos.

Esta librería presenta, al igual que la anterior, la posibilidad de visualizar las interacciones entre variables. Sin embargo, en este caso son mayores las opciones para personalizar gráficos.

Hay una sección especial para detectar valores en blanco o nulos. Otra de las opciones que pueden seleccionarse de la barra de opciones, es el puntaje de correlación entre variables.

¿Cómo continuamos? ¿Cuál elegir?

En este artículo exploramos el uso de tres de las librerías más conocidas de Python para generar informes de análisis exploratorio. A continuación, se presenta en una tabla un pequeño resumen de las características encontradas:

Si bien las tres librerías ofrecen prácticamente lo mismo: información del conjunto de datos, características básicas de cada variable y asociación entre las mismas, la diferencia se encuentra en el grado de personalización del informe.

La elección estará condicionada por las necesidades de cada situación, pero en todos los casos, el uso de este tipo de librerías permite realizar un primer acercamiento al conjunto de datos de manera rápida, detectando fácilmente valores atípicos o faltantes, y conociendo de manera general las características de cada variable.

Para finalizar, es importante aclarar que estas herramientas son un complemento al análisis, y en muchas ocasiones, será necesario personalizar el mismo brindando mayor contexto en relación a las necesidades y objetivos del proyecto.

Bibliografía

· https://pypi.org/project/sweetviz/

· https://pypi.org/project/dtale/

· https://pypi.org/project/pandas-profiling/

· Lau, S., Gonzalez, J., & Nolan, D. (2021). Learning Data Science. O’Reilly Media, Inc.

· Real Academia Española (2022). Diccionario de la lengua española. Recuperado de URL: https://dle.rae.es

· Sotaquirá, Miguel (2021) ¿Cómo hacer el Análisis Exploratorio de Datos? Recuperado de URL: https://www.codificandobits.com/blog/analisis-exploratorio-de-datos/

--

--