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

Intermedio
DataFrames
Reporting
Agrupación

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

Base
Estadística
Variabilidad
Outliers

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

Intermedio
Reporting
Gráficos
Presentación

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

Exploración
Exploración
Tendencias
Comparación

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.

Preparado

Greenbox Institute · Python Lab

Loading...

Consola

stdout / errores

Aquí se mostrará la salida del código.