Saltar al contenido
Manejo de datos con Pandas

Visualización de datos con Pandas

Introducción

Visualización de Datos con Pandas en Python

La visualización de datos es una parte vital del análisis de datos. Permite a los usuarios entender y comunicar de manera efectiva patrones y tendencias en grandes conjuntos de datos. Pandas, una librería de Python, ofrece una amplia gama de herramientas de visualización de datos que facilitan la creación de visualizaciones de alta calidad y personalizables.

Pandas incluye numerosas funciones para visualización de datos, como gráficos de líneas, de barras y de dispersión. También incluye herramientas de visualización de datos más avanzadas, como gráficos de caja y bigotes, histogramas y gráficos de áreas. Estas herramientas permiten a los usuarios personalizar la apariencia de las visualizaciones, incluyendo la elección de colores, el tamaño del texto y la leyenda.

Además, Pandas ofrece la capacidad de crear sub-gráficos, que permiten una vista detallada de los datos en diferentes perspectivas.

En resumen, Pandas es una herramienta muy versátil y poderosa para la visualización de datos que permite a los usuarios explorar, analizar y comunicar grandes conjuntos de datos de manera efectiva y personalizada.

Resumen

Visualización de Datos con Pandas en Python

La visualización de datos con Pandas se realiza utilizando la biblioteca de visualización de datos Matplotlib y la integración del objeto DataFrame de Pandas. Es fácil de usar ya que no requiere una gran cantidad de código, lo que hace que la visualización de datos sea accesible para científicos de datos y analistas principiantes.

Para empezar, debes importar ambas bibliotecas y luego cargar tu conjunto de datos en un objeto DataFrame. A partir de ahí, puedes utilizar los métodos integrados de trazado de Pandas, como plot(), scatter(), hist() y bar(), para crear visualizaciones simples.

Por ejemplo, si deseas crear un gráfico de barras, simplemente llamas al método plot() en tu DataFrame, indicando las columnas que deseas utilizar como datos de X e Y. De manera similar, para crear un diagrama de dispersión, utiliza el método scatter() indicando columnas para los datos X e Y.

Pandas también proporciona varias opciones de personalización, como añadir etiquetas de ejes, títulos y legendas. Además, puedes cambiar el color, estilo y grosor de las líneas de tus gráficos.

En resumen, la visualización de datos con Pandas te permite crear una amplia gama de gráficos y diagramas de manera fácil y rápida, lo que puede ayudarte a identificar tendencias y patrones en tus datos y comunicar tus resultados de manera efectiva a otros.

 

Aplicación teórica

Gráficos Básicos de Distribución

Los gráficos básicos de distribución son herramientas visuales utilizadas para representar cómo se distribuyen los datos en un conjunto. Estos gráficos permiten entender la forma, dispersión y tendencia de los datos. Aquí se presentan los tipos más comunes:

Histograma

Un histograma es un gráfico que representa la distribución de un conjunto de datos dividiendo el rango de valores en intervalos (o "bins") y contando el número de observaciones en cada intervalo. Cada barra del histograma representa un intervalo y su altura indica la frecuencia de los datos dentro de ese intervalo.

Para construir un histograma:
1. Divida el rango de datos en intervalos iguales.
2. Cuente cuántos datos caen en cada intervalo.
3. Trace barras cuya altura corresponda al número de datos en cada intervalo.

La fórmula para calcular la frecuencia en cada intervalo es:
\[
f_j = \sum_{i=1}^{n} I(x_i \in [a_j, a_{j+1}])
\]
donde \(f_j\) es la frecuencia del intervalo \(j\), \(I(\cdot)\) es la función indicadora que es 1 si \(x_i\) está en el intervalo y 0 en caso contrario, y \(a_j\) y \(a_{j+1}\) son los límites del intervalo \(j\).

Diagrama de Caja (Boxplot)

Un diagrama de caja, o boxplot, resume la distribución de los datos mostrando la mediana, los cuartiles y los posibles valores atípicos. Se construye a partir de la mediana, el primer cuartil (Q1), el tercer cuartil (Q3) y los valores atípicos. La caja abarca desde Q1 hasta Q3, y la línea dentro de la caja representa la mediana. Los "bigotes" se extienden hasta los valores que están dentro de 1.5 veces el rango intercuartílico (IQR) de los cuartiles, y los puntos fuera de este rango se consideran outliers.

Para construir un boxplot:
1. Calcule la mediana, Q1 y Q3.
2. Determine el rango intercuartílico (IQR):
   \[
   \text{IQR} = Q3 - Q1
   \]
3. Identifique los límites para los bigotes:
   \[
   \text{Límite inferior} = Q1 - 1.5 \times \text{IQR}
   \]
   \[
   \text{Límite superior} = Q3 + 1.5 \times \text{IQR}
   \]
4. Trace la caja entre Q1 y Q3, dibuje una línea en la mediana y extienda los bigotes hasta los límites calculados. Marque los valores fuera de los límites como outliers.

Gráfico de Densidad

Un gráfico de densidad muestra la función de densidad de probabilidad estimada para una variable continua. Es una alternativa suavizada al histograma y proporciona una visión más clara de la distribución de los datos.

Para construir un gráfico de densidad:
1. Estime la función de densidad utilizando técnicas como la estimación de densidad de kernel.
2. Trace la función suavizada sobre el rango de datos.

La estimación de densidad de kernel se calcula como:
\[
\hat{f}(x) = \frac{1}{n h} \sum_{i=1}^{n} K\left(\frac{x - x_i}{h}\right)
\]
donde \(\hat{f}(x)\) es la estimación de la densidad en \(x\), \(n\) es el número de observaciones, \(h\) es el ancho de banda, y \(K(\cdot)\) es la función kernel, que típicamente es una función de densidad normal.

Gráfico de Barras

Aunque más comúnmente usado para datos categóricos, un gráfico de barras también puede mostrar la distribución de datos numéricos cuando se agrupan en categorías o intervalos. Cada barra representa una categoría y su altura indica la frecuencia o cantidad de datos en esa categoría.

Para construir un gráfico de barras:
1. Agrupe los datos en categorías o intervalos.
2. Calcule la frecuencia o suma para cada categoría.
3. Trace barras para cada categoría con una altura correspondiente a su frecuencia o suma.

Gráfico de Cajas y Bigotes (violin plot)

Un gráfico de cajas y bigotes (violin plot) combina características de un boxplot y un gráfico de densidad. Muestra la distribución de datos a través de la forma de la densidad estimada, así como los resumenes estadísticos como la mediana y los cuartiles.

Para construir un violin plot:
1. Estime la densidad de probabilidad para los datos en cada categoría.
2. Trace la densidad estimada en forma de violín para cada categoría, junto con los puntos de resumen como la mediana y los cuartiles.

Estos gráficos proporcionan diferentes perspectivas sobre la distribución de datos y son herramientas esenciales en el análisis exploratorio de datos. La elección del gráfico adecuado depende del tipo de datos y del aspecto de la distribución que se desee investigar.

Gráficos de Tendencia y Series Temporales

Los gráficos de tendencia y series temporales son esenciales para analizar datos que se registran a lo largo del tiempo. Estos gráficos permiten visualizar patrones, tendencias y fluctuaciones en los datos temporales. A continuación se presentan los tipos más comunes de gráficos para este propósito:

Gráfico de Línea

Un gráfico de línea es ideal para mostrar cómo cambian los datos a lo largo del tiempo. Cada punto en el gráfico representa un valor en un momento específico, y los puntos están conectados por líneas para mostrar la tendencia general.

Para construir un gráfico de línea:
1. En el eje horizontal (x), coloque el tiempo o las fechas.
2. En el eje vertical (y), coloque los valores de la variable que está siendo medida.
3. Trace una línea que conecte los puntos correspondientes a los valores de la variable en diferentes momentos.

La fórmula básica de la visualización de una serie temporal en un gráfico de línea es:
\[
y_t = f(t)
\]
donde \(y_t\) es el valor en el tiempo \(t\), y \(f(t)\) es la función que describe la tendencia de los datos a lo largo del tiempo.

Gráfico de Área

Un gráfico de área es similar a un gráfico de línea, pero el área debajo de la línea se llena con color. Esto es útil para visualizar la magnitud de los datos y la acumulación de valores a lo largo del tiempo.

Para construir un gráfico de área:
1. Trace un gráfico de línea con los datos.
2. Llena el área debajo de la línea con un color sólido o un patrón.

Gráfico de Barras

Aunque los gráficos de barras suelen usarse para datos categóricos, también pueden ser útiles para series temporales cuando se desea comparar la magnitud de los valores en diferentes periodos de tiempo.

Para construir un gráfico de barras:
1. En el eje horizontal (x), coloque los períodos de tiempo.
2. En el eje vertical (y), coloque los valores de la variable.
3. Trace barras verticales para cada periodo de tiempo.

Gráfico de Estacionalidad

Un gráfico de estacionalidad ayuda a identificar patrones repetitivos o estacionales en los datos a lo largo de períodos específicos (por ejemplo, meses o estaciones).

Para construir un gráfico de estacionalidad:
1. Agrupe los datos por la unidad de tiempo que se quiere analizar (por ejemplo, meses del año).
2. Trace un gráfico de línea o de barras para mostrar cómo los datos fluctúan a lo largo de las estaciones.

Descomposición de Series Temporales

La descomposición de series temporales es una técnica que separa una serie temporal en componentes: tendencia, estacionalidad y residuos. Esta técnica permite analizar cada componente por separado.

Para realizar la descomposición:
1. **Tendencia**: Utilice un suavizado móvil o técnicas de regresión para identificar la tendencia a largo plazo.
2. **Estacionalidad**: Determine el patrón estacional, que es la variación que ocurre en intervalos regulares.
3. **Residuos**: Reste los componentes de tendencia y estacionalidad de la serie original para obtener los residuos.

Una forma matemática de descomponer una serie temporal es:
\[
Y_t = T_t + S_t + E_t
\]
donde \(Y_t\) es la observación en el tiempo \(t\), \(T_t\) es la tendencia, \(S_t\) es el componente estacional y \(E_t\) es el error o residuo.

Gráfico de Tendencia con Ajuste de Modelos

Para analizar las tendencias a largo plazo, se pueden ajustar modelos matemáticos como las regresiones lineales o modelos más complejos como ARIMA (AutoRegressive Integrated Moving Average) para prever la tendencia futura.

Para ajustar un modelo de regresión lineal:
\[
Y_t = \beta_0 + \beta_1 t + \epsilon_t
\]
donde \(\beta_0\) es el intercepto, \(\beta_1\) es la pendiente de la tendencia, \(t\) es el tiempo y \(\epsilon_t\) es el término de error.

Visualización de Modelos de Series Temporales

Al visualizar modelos ajustados, se traza la serie temporal original junto con la línea de ajuste del modelo. Esto permite comparar las predicciones del modelo con los datos reales.

Para construir este gráfico:
1. Trace la serie temporal original.
2. Añada la línea del modelo ajustado sobre el gráfico.

Estos gráficos y técnicas proporcionan una comprensión profunda de cómo varían los datos a lo largo del tiempo, ayudan a identificar patrones y realizar pronósticos basados en tendencias observadas.

Visualización de Relaciones y Correlaciones

La visualización de relaciones y correlaciones es fundamental para entender cómo las variables se relacionan entre sí en un conjunto de datos. Aquí se presentan las técnicas más comunes para este propósito:

Diagrama de Dispersión

Un diagrama de dispersión muestra la relación entre dos variables continuas. Cada punto en el gráfico representa un par de valores (uno para cada variable). Este tipo de gráfico es útil para identificar patrones, tendencias y la fuerza de la relación entre las variables.

Para construir un diagrama de dispersión:
1. En el eje horizontal (x), coloque los valores de la primera variable.
2. En el eje vertical (y), coloque los valores de la segunda variable.
3. Trace un punto para cada par de valores (x, y).

La fórmula para calcular la correlación entre las dos variables, utilizando el coeficiente de correlación de Pearson, es:
\[
r = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{n} (x_i - \bar{x})^2 \sum_{i=1}^{n} (y_i - \bar{y})^2}}
\]
donde \(r\) es el coeficiente de correlación, \(x_i\) y \(y_i\) son los valores individuales de las variables, y \(\bar{x}\) y \(\bar{y}\) son las medias de las variables.

Gráfico de Calor (Heatmap)

Un gráfico de calor es una representación gráfica de datos en una matriz donde los valores de la matriz son representados mediante colores. Este tipo de gráfico es útil para visualizar la intensidad de la relación entre pares de variables.

Para construir un gráfico de calor:
1. Calcule la matriz de correlación entre las variables.
2. Utilice colores para representar los valores de la matriz, donde colores más intensos indican correlaciones más fuertes.

Matriz de Correlación

Una matriz de correlación es una tabla que muestra los coeficientes de correlación entre múltiples pares de variables. Es útil para visualizar cómo se relacionan todas las variables entre sí.

Para construir una matriz de correlación:
1. Calcule el coeficiente de correlación para cada par de variables.
2. Organice los coeficientes en una tabla, donde cada celda muestra la correlación entre dos variables.

Gráfico de Dispersión de Matriz

Un gráfico de dispersión de matriz es una colección de diagramas de dispersión para cada par de variables en un conjunto de datos. Este gráfico permite una visión general de las relaciones entre todas las variables.

Para construir un gráfico de dispersión de matriz:
1. Genere un diagrama de dispersión para cada par de variables.
2. Organice los diagramas en una cuadrícula, con cada celda mostrando la relación entre dos variables.

Gráfico de Regresión

Un gráfico de regresión muestra cómo se ajusta un modelo de regresión a los datos en un diagrama de dispersión. Es útil para visualizar la relación lineal entre las variables y cómo el modelo predice los valores.

Para construir un gráfico de regresión:
1. Trace un diagrama de dispersión de los datos.
2. Ajuste y trace la línea de regresión que mejor se ajusta a los datos.

La ecuación de una línea de regresión simple es:
\[
y = \beta_0 + \beta_1 x + \epsilon
\]
donde \(y\) es la variable dependiente, \(x\) es la variable independiente, \(\beta_0\) es el intercepto, \(\beta_1\) es la pendiente y \(\epsilon\) es el término de error.

Gráfico de Cajas (Boxplot) con Grupos

Un gráfico de cajas también puede ser usado para visualizar la relación entre una variable categórica y una variable continua. Cada caja representa la distribución de la variable continua dentro de una categoría.

Para construir un gráfico de cajas con grupos:
1. Agrupe los datos por la variable categórica.
2. Trace un gráfico de cajas para cada grupo, mostrando la distribución de la variable continua dentro de cada categoría.

Gráfico de Pareto

Un gráfico de Pareto combina un gráfico de barras y un gráfico de líneas para mostrar la frecuencia de ocurrencia de eventos y su contribución acumulativa. Es útil para identificar cuáles variables tienen el mayor impacto.

Para construir un gráfico de Pareto:
1. Trace un gráfico de barras mostrando la frecuencia de eventos o valores.
2. Añada una línea que represente la contribución acumulativa de los eventos.

Estos gráficos y técnicas proporcionan diferentes perspectivas sobre las relaciones entre variables, ayudando a identificar patrones, tendencias y asociaciones en los datos. La elección del gráfico adecuado depende del tipo de datos y del aspecto de la relación que se desee analizar.

 

Aplicación práctica

     

Ejemplo Práctico de Visualización de Datos con Pandas en Python

Supongamos que tenemos un conjunto de datos de ventas por mes de tres tiendas diferentes, guardados en un archivo .csv llamado "ventas.csv":

                                                                                                                                                                                                         

Datos de Ventas por Mes y Tienda
Mes Tienda 1 Tienda 2 Tienda 3
Ene 20000 15000 18000
Feb 25000 17000 19000
Mar 30000 20000 22000
Abr 28000 21000 24000
May 32000 23000 26000

Para visualizar los datos, primero importamos Pandas:


import pandas as pd

Luego, leemos el archivo .csv usando la función read_csv de Pandas y guardamos los datos en un DataFrame:


datos = pd.read_csv('ventas.csv')

A continuación, podemos graficar las ventas de cada tienda por mes usando la función plot:


datos.plot(x='Mes', y=['Tienda 1', 'Tienda 2', 'Tienda 3'], kind='bar')

El parámetro x especifica la columna que se usará para el eje X (en este caso, la columna "Mes"), y el parámetro y especifica las columnas que se usarán para el eje Y (en este caso, las columnas "Tienda 1", "Tienda 2" y "Tienda 3"). El parámetro kind especifica el tipo de gráfico que se creará (en este caso, un gráfico de barras).

El resultado sería un gráfico de barras que muestra las ventas de cada tienda por mes.

Este es solo un ejemplo de cómo puedes visualizar datos utilizando Pandas en Python.