Pandas: Integraciones

Descubre cómo integrar Pandas con otras herramientas. Mejora tus flujos de trabajo conectando Pandas con bibliotecas como NumPy, Matplotlib y más.

Aprende Pandas GRATIS y certifícate

La capacidad de integrar pandas con otras bibliotecas de Python como NumPy, Matplotlib y Seaborn permite potenciar considerablemente el alcance y eficiencia de tus análisis y visualizaciones. En este módulo veremos cómo se complementan estas herramientas para realizar un trabajo más completo y eficiente.

Integración de pandas con NumPy

NumPy es una biblioteca especializada en operaciones numéricas y algebraicas sobre grandes matrices multidimensionales. pandas está construido sobre NumPy, por lo que ambas herramientas trabajan de forma conjunta de manera natural y eficiente.

Convertir estructuras pandas en arrays de NumPy

Convertir un DataFrame o una Serie en un array de NumPy es una operación sencilla que se realiza utilizando el atributo values:

import pandas as pd
import numpy as np

df = pd.DataFrame({'ventas': [150, 200, 175, 220]})

array_ventas = df['ventas'].values
print(array_ventas)

Esto resulta especialmente útil cuando necesitas hacer cálculos matemáticos avanzados que requieren funciones específicas de NumPy, como operaciones vectorizadas o álgebra lineal.

Operaciones matemáticas vectorizadas

La integración directa con NumPy permite que puedas aplicar operaciones vectorizadas eficientemente sobre columnas enteras de un DataFrame. Por ejemplo, calcular rápidamente el logaritmo o raíz cuadrada:

df['log_ventas'] = np.log(df['ventas'])
df['raiz_ventas'] = np.sqrt(df['ventas'])

Estas operaciones son extremadamente rápidas debido a la implementación interna optimizada en C que NumPy ofrece.

Crear DataFrames a partir de arrays NumPy

También puedes crear rápidamente DataFrames desde arrays NumPy utilizando pandas:

datos_np = np.array([[100, 150], [200, 250]])
df_nuevo = pd.DataFrame(datos_np, columns=['enero', 'febrero'])

Esto facilita enormemente transformar resultados numéricos en estructuras más cómodas para su análisis y visualización posterior.

Integración de pandas con Matplotlib

Matplotlib es la biblioteca de visualización más utilizada en Python y funciona perfectamente en combinación con pandas. La unión entre estas dos herramientas facilita enormemente la generación de gráficos rápidos y efectivos directamente desde DataFrames y Series.

Visualización directa desde pandas

Puedes visualizar datos directamente desde pandas usando el método plot() integrado:

import matplotlib.pyplot as plt

df = pd.DataFrame({'mes': ['Ene', 'Feb', 'Mar'],
                   'ventas': [250, 300, 400]})
                   
df.plot(x='mes', y='ventas', kind='bar', title='Ventas mensuales')
plt.xlabel('Mes')
plt.ylabel('Ventas (€)')
plt.show()

Este método simplifica considerablemente la creación de gráficos básicos sin necesidad de transformar manualmente los datos.

Personalización avanzada de gráficos

Para lograr una personalización avanzada, puedes extraer directamente las columnas del DataFrame en las funciones estándar de Matplotlib:

plt.figure(figsize=(8,4))
plt.plot(df['mes'], df['ventas'], marker='o', linestyle='--')
plt.title('Ventas por mes')
plt.xlabel('Mes')
plt.ylabel('Ventas (€)')
plt.grid(True)
plt.show()

De este modo puedes aprovechar toda la flexibilidad que Matplotlib ofrece, utilizando pandas para gestionar previamente tus datos de manera sencilla.

Integración de pandas con Seaborn

Seaborn es una biblioteca basada en Matplotlib que permite crear gráficos estadísticos con mayor facilidad y elegancia visual. pandas facilita el uso de Seaborn al proporcionar estructuras de datos compatibles y fáciles de integrar.

Creación sencilla de gráficos estadísticos

Con pandas y Seaborn puedes crear gráficos estadísticos complejos de manera sencilla, como diagramas de cajas o histogramas:

import seaborn as sns

df = pd.DataFrame({'ventas': [150, 170, 250, 300, 200, 220]})

sns.boxplot(x=df['ventas'])
plt.title('Distribución de las ventas')
plt.xlabel('Ventas (€)')
plt.show()

Esto te permite visualizar rápidamente la distribución y variabilidad de tus datos con gráficos estadísticos intuitivos.

Gráficos avanzados usando DataFrames

Una ventaja importante de Seaborn es su capacidad para generar gráficos avanzados con facilidad desde DataFrames pandas, como el diagrama de dispersión categórico (catplot) o gráficos de correlación (heatmap):

datos = {'categoría': ['A', 'A', 'B', 'B'],
         'valor': [10, 15, 12, 18]}
df = pd.DataFrame(datos)

sns.catplot(x='categoría', y='valor', data=df, kind='swarm')
plt.title('Distribución de valores por categoría')
plt.show()

Para gráficos de correlación:

df_corr = pd.DataFrame({'x': np.random.rand(100),
                        'y': np.random.rand(100)})

sns.heatmap(df_corr.corr(), annot=True)
plt.title('Mapa de correlación')
plt.show()

Esto simplifica considerablemente la creación de visualizaciones estadísticas complejas directamente a partir de DataFrames.

Integración combinada: pandas, NumPy, Matplotlib y Seaborn

En proyectos reales de ciencia de datos es común combinar estas bibliotecas, aprovechando las fortalezas individuales de cada una:

  • NumPy para operaciones numéricas rápidas y eficientes.
  • pandas para la manipulación sencilla y flexible de grandes conjuntos de datos.
  • Matplotlib y Seaborn para la visualización clara, efectiva y visualmente atractiva de resultados estadísticos.

Ejemplo práctico integrando las tres herramientas

A continuación, se muestra un ejemplo completo que combina NumPy, pandas y Seaborn para analizar y visualizar un conjunto de datos:

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Crear DataFrame con NumPy y pandas
datos = np.random.normal(loc=50, scale=15, size=(100, 2))
df = pd.DataFrame(datos, columns=['altura', 'peso'])

# Gráfico de dispersión con Seaborn
sns.scatterplot(x='altura', y='peso', data=df)
plt.title('Relación entre altura y peso')
plt.xlabel('Altura (cm)')
plt.ylabel('Peso (kg)')
plt.show()

Esto simplifica significativamente el proceso de explorar visualmente relaciones en los datos con poco código.

Buenas prácticas en integraciones con pandas

Para aprovechar al máximo estas integraciones, se recomienda seguir estas buenas prácticas:

  • Utilizar siempre DataFrames bien estructurados para garantizar compatibilidad con bibliotecas externas.
  • Convertir tipos de datos explícitamente cuando sea necesario (astype()).
  • Evitar modificar estructuras originales sin copias de seguridad previas.
  • Documentar claramente las transformaciones y visualizaciones realizadas para facilitar la comprensión futura del análisis.

«La integración eficiente de bibliotecas especializadas con pandas no solo facilita el análisis, sino que también mejora notablemente la claridad del código y la comunicación visual de los resultados.»

Empezar curso de Pandas

Lecciones de este módulo de Pandas

Lecciones de programación del módulo Integraciones del curso de Pandas.

Ejercicios de programación en este módulo de Pandas

Evalúa tus conocimientos en Integraciones con ejercicios de programación Integraciones de tipo Test, Puzzle, Código y Proyecto con VSCode.