Python
Análisis de Datos
Python permite consolidar y limpiar datos de múltiples fuentes, automatizar procesos repetitivos, visualizar tendencias con claridad y prototipar modelos en minutos. Su ecosistema acelera desde exploración y reporting hasta machine learning y despliegue de prototipos, facilitando decisiones basadas en evidencia y reduciendo tiempos de análisis.
Lista de librerías más usadas en análisis de datos
- pandas
- numpy
- matplotlib
- seaborn
- plotly
- altair
- scipy
- statsmodels
- scikit-learn
- xgboost
- lightgbm
- catboost
- tensorflow
- keras
- pytorch
- dask
- pyspark
- nltk
- spacy
- gensim
- missingno
- openpyxl
- xlrd
- xlwt
- dash
- streamlit
- joblib
- requests
- beautifulsoup4
- scrapy
- sqlalchemy
Python aplicado a mejora continua
Ejemplos de librerías utilizadas en análisis de datos
Selecciona un ejemplo, revisa el análisis y envíalo al editor. Diseñado para aprender con intención: qué hace, por qué importa y qué resultado aporta a una organización.
pandas
Contraer
pandas es el “Excel programable”: permite leer, limpiar, combinar y resumir datos en estructuras tipo tabla (DataFrames) de forma sólida y repetible. Ideal cuando los reportes manuales ya no escalan o se necesita trazabilidad.
Qué hace este ejemplo y por qué importa
-
• Construye un DataFrame de ventas por categoría y mes (como una tabla).
-
• Agrupa por categoría/mes y suma los montos para ver totales segmentados.
-
• Convierte el resultado a una tabla de contingencia para comparar meses por fila.
-
• Rellena vacíos con 0 y obtiene el ranking de categorías por facturación total.
-
• Valor para la empresa: estandariza cierres mensuales, auditorías y comparativos sin errores de copy/paste.
-
• Salida útil: tabla limpia para enviar a Excel/BI o alimentar un dashboard.
Resultado esperado
Genera tablas limpias y comparables para reportes y análisis mensual.
Código
import pandas as pd
ventas = pd.DataFrame({
"categoria": ["A","A","B","B","C","C"],
"mes": ["Ene","Feb","Ene","Feb","Ene","Feb"],
"monto": [1200, 1500, 900, 1100, 400, 850]
})
resumen = (
ventas
.groupby(["categoria","mes"], as_index=False)["monto"].sum()
.pivot(index="categoria", columns="mes", values="monto")
.fillna(0)
)
print("Resumen por categoría y mes:")
print(resumen)
print("\nTop categorías por total:")
print(
ventas.groupby("categoria")["monto"]
.sum()
.sort_values(ascending=False)
)
numpy
Ver análisis
numpy es el motor numérico: vectores y matrices muy rápidos para cálculos estadísticos, simulaciones y transformaciones. Se usa cuando hay que procesar muchos números con eficiencia.
Qué hace este ejemplo y por qué importa
-
• Genera 1.000 valores aleatorios con distribución normal (media 50, desvío 10).
-
• Calcula media, desviación estándar y cuartiles en milisegundos.
-
• Cuenta cuántos valores superan un umbral (ej. > 60) para evaluar riesgos/targets.
-
• Valor para la empresa: KPIs consistentes, análisis de variabilidad y detección de outliers a escala.
-
• Salida útil: métricas resumidas listas para reportes y umbrales de alerta.
Resultado esperado
Resume variación y umbrales para decisiones rápidas basadas en datos.
Código
import numpy as np
np.random.seed(42)
x = np.random.normal(loc=50, scale=10, size=1000)
print("Media:", round(np.mean(x), 2))
print("Desviación:", round(np.std(x), 2))
q25, q50, q75 = np.percentile(x, [25, 50, 75])
print("Cuartiles:", (round(q25,2), round(q50,2), round(q75,2)))
print("Valores > 60:", int(np.sum(x > 60)))
matplotlib
Ver análisis
matplotlib crea gráficos personalizables para informes formales. Perfecto para presentar cifras con control total de etiquetas y estilos.
Qué hace este ejemplo y por qué importa
-
• Crea un gráfico de barras por categoría con colores diferenciados.
-
• Añade etiquetas numéricas sobre cada barra para facilitar la lectura.
-
• Limpia bordes innecesarios y ajusta automáticamente espacios.
-
• Valor para la empresa: visuales claros en reportes PDF/Presentaciones que comunican rápido.
-
• Salida útil: imagen de alta calidad lista para compartir.
Resultado esperado
Convierte datos en visuales listos para reportes ejecutivos.
Código
import matplotlib.pyplot as plt
plt.close('all')
categorias = ["A","B","C","D"]
valores = [45, 20, 33, 60]
fig, ax = plt.subplots(figsize=(6,4))
bars = ax.bar(categorias, valores, width=0.6)
ax.set_title("Ventas por categoría", pad=10)
ax.set_xlabel("Categoría")
ax.set_ylabel("Unidades")
for b in bars:
ax.text(
b.get_x() + b.get_width()/2, b.get_height()+0.5,
f"{int(b.get_height())}", ha="center", va="bottom", fontsize=10
)
ax.spines["top"].set_visible(False)
ax.spines["right"].set_visible(False)
plt.tight_layout()
plt.show()
seaborn
Ver análisis
seaborn es visualización estadística de alto nivel construida sobre matplotlib. Viene con estilos elegantes y funciones que facilitan explorar relaciones y tendencias.
Qué hace este ejemplo y por qué importa
-
• Genera un conjunto de datos sintético con dos grupos.
-
• Dibuja un scatterplot coloreado por grupo para comparar patrones.
-
• Traza una línea con el promedio por cada valor de X (tendencia general).
-
• Valor para la empresa: explorar rápidamente qué variables explican resultados.
-
• Salida útil: visual que revela diferencias entre grupos y tendencia global.
Resultado esperado
Explora relaciones y diferencias entre grupos en minutos.
Código
import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.close('all')
np.random.seed(0)
df = pd.DataFrame({
"x": np.linspace(0, 10, 100),
"grupo": np.random.choice(["Control","Tratamiento"], 100)
})
df["y"] = 2*df["x"] + (df["grupo"]=="Tratamiento")*5 + np.random.normal(0, 3, 100)
sns.set_theme(style="whitegrid")
ax = sns.scatterplot(data=df, x="x", y="y", hue="grupo", alpha=0.85)
mean_by_x = df.groupby("x")["y"].mean()
sns.lineplot(x=mean_by_x.index, y=mean_by_x.values, color="black", ax=ax)
plt.title("Relación x ~ y por grupo")
plt.tight_layout()
plt.show()
Editor interactivo de Python
Ejecuta ejemplos, valida tu lógica y visualiza resultados. Greenbox Institute.
Greenbox Institute · Python Lab
Consola
stdout / errores
Aquí se mostrará la salida del código.
