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ícateLa 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.»
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.