Ticker

6/recent/ticker-posts

Primeros pasos con Streamlit

 

🚀 Primeros pasos con Streamlit

¿Qué es Streamlit?

Streamlit es un framework de Python de código abierto diseñado para convertir scripts de datos en aplicaciones web interactivas y compartibles en cuestión de minutos. Es la herramienta líder para crear interfaces de usuario (UI) para proyectos de Ciencia de Datos y Machine Learning sin necesidad de escribir código HTML, CSS o JavaScript.

¿Para quién está pensado?

  • Data Scientists: Para prototipar y presentar modelos rápidamente.
  • ML Engineers: Para crear herramientas de inferencia que los usuarios finales puedan testear.
  • Analistas de Datos: Para construir dashboards dinámicos que permitan filtrar y explorar datos visualmente.
  • Desarrolladores de Herramientas Internas: Para automatizar reportes o interfaces de gestión de datos sin el overhead de un framework web completo (como Django o Flask).

Cómo opera internamente

Streamlit utiliza un paradigma de programación único:

  1. Ejecución de arriba hacia abajo: Cada vez que un usuario interactúa con un elemento de la pantalla (widget), el script se vuelve a ejecutar íntegramente de la línea 1 hasta el final.
  2. Sistema de Cache: Para que la re-ejecución sea eficiente, utiliza @st.cache_data o @st.cache_resource, permitiendo que procesos pesados (como cargar 1GB de datos) se guarden en memoria y no se repitan innecesariamente.
  3. Estado de Sesión: Maneja st.session_state para mantener variables vivas entre las ejecuciones del script.

Cómo se instala

La instalación se realiza a través de pip:

pip install streamlit

Para verificar la instalación y ejecutar una aplicación de ejemplo:

streamlit hello

Componentes Principales

  • Entrada: st.button, st.slider, st.text_input, st.checkbox, st.file_uploader.
  • Salida (Visualización): st.dataframe, st.pyplot, st.plotly_chart, st.line_chart.
  • Layout (Diseño): st.sidebar, st.columns, st.tabs, st.expander, st.container.
  • Texto: st.title, st.markdown, st.latex, st.code.

Librerías Compatibles

Streamlit es compatible con la mayoría de las librerías del ecosistema Python:

  • Análisis: Pandas, NumPy, Polars.
  • IA/ML: Scikit-learn, TensorFlow, PyTorch, OpenAI, LangChain.
  • Visualización: Matplotlib, Seaborn, Plotly, Altair, Bokeh, Pydeck.

Estructura y código Base de una Aplicación con Streamlit

Una aplicación típica sigue esta estructura de flujo:

import streamlit as st
import pandas as pd

# 1. Configuración de la página
st.set_page_config(page_title="App Analítica", layout="wide")

# 2. Carga de datos (Cacheada para optimizar)
@st.cache_data
def load_data():
    return pd.read_csv("data.csv")

# 3. Sidebar (Parámetros y filtros globales)
with st.sidebar:
    st.title("Filtros")
    rango = st.slider("Seleccione el rango", 0, 100, (25, 75))

# 4. Cuerpo de la aplicación (Visualización)
st.title("Dashboard de Control")
df = load_data()

# Filtrar el DataFrame basado en la columna 'Ventas' usando el rango del slider
df_filtrado = df[(df['Ventas'] >= rango[0]) & (df['Ventas'] <= rango[1])]

# Mostrar el gráfico con los datos filtrados
st.line_chart(df_filtrado)

st.write(f"Mostrando {len(df_filtrado)} registros filtrados entre {rango[0]} y {rango[1]} de Ventas")

Diseño de Arquitectura Base de una Aplicación

El diseño de la arquitectura está en base a la estructura y código base de una Aplicación con Streamlit.


Descripción del Diagrama:

El diagrama ilustra el flujo de ejecución de la aplicación, destacando las siguientes etapas:

  1. Script de Streamlit y Carga: El punto de partida es la ejecución del script Python, que primero realiza la configuración de la página (st.set_page_config) y luego invoca la función de carga de datos (load_data).

  2. Mecanismo de Cache (@st.cache_data): Al llamar a load_data, el sistema verifica si los datos de data.csv ya están en el cache.

    • Si no lo están (o si hay cambios), se lee el archivo de disco y se guardan los datos en el cache para futuras llamadas.
    • Si ya están en cache, se obtienen directamente de allí, acelerando la ejecución.
  3. Filtrado de Datos: Una vez que los datos crudos están cargados, se aplican los filtros de usuario (especificados por el rango del slider en la barra lateral). Esto genera un subconjunto de datos (df_filtrado) con la columna 'Ventas' dentro del rango seleccionado.

  4. Renderizado de la Interfaz de Usuario: Finalmente, los datos filtrados se envían al cuerpo principal de la aplicación para crear los elementos visuales que el usuario verá en su navegador, como el gráfico de líneas y el mensaje informativo sobre los registros.

Diagrama de contexto visual:

El diagrama de contexto ilustra el modelo operativo de alto nivel de una aplicación de datos basada en el framework Streamlit, segmentado por roles de usuario, componentes de plataforma y entrega de valor al negocio.

A continuación, se presenta un análisis técnico-gerencial del flujo:

1. Perspectiva del Desarrollador (Agilidad en el Ciclo de Vida): Un ingeniero de datos o científico de datos (DESARROLLADOR) escribe lógica de negocio y visualización utilizando sintaxis totalmente en Python. Este enfoque de low-code elimina la necesidad de separar el desarrollo del front-end y back-end, acelerando el tiempo de comercialización (Time-to-Market) de prototipos y paneles interactivos.

  • Palabras Técnicas: Script .py, Lógica de Negocio, Framework Low-Code.

2. Plataforma Streamlit (Motor de Ejecución e Inteligencia): El núcleo del sistema reside en el entorno de ejecución (PLATAFORMA STREAMLIT), que puede desplegarse on-premise o en nube gestionada. Sus componentes críticos garantizan la interactividad y la eficiencia:

  • Ejecutor de Aplicación: Este motor renderiza dinámicamente la Interfaz de Usuario (UI) en el navegador del usuario final. Automatiza la comunicación bidireccional: cualquier cambio en un control (widget) en la UI gatilla una re-ejecución automática del script para actualizar los resultados en tiempo real.
  • Mecanismo de Caché: Funcionalidad crítica para la optimización de recursos. Permite almacenar en memoria resultados de operaciones costosas (como consultas a bases de datos o cargas de grandes datasets). Si un segundo usuario solicita la misma información, el sistema la sirve desde el caché, reduciendo la latencia de respuesta y la carga sobre los sistemas fuente.
  • Palabras Técnicas: Renderizado Dinámico de UI, Bidireccionalidad, Mecanismo de Caché, Latencia, Datasets.

3. Experiencia del Usuario Final (Entrega de Visual Analytics): El USUARIO FINAL consume la aplicación a través de un navegador web estándar. La plataforma transforma el script de Python en un Dashboard Ejecutivo profesional y totalmente interactivo.

  • Interacción Activa: Los usuarios no solo visualizan datos; actúan sobre ellos mediante controles (Sliders, Botones). Estas acciones envían señales de vuelta a la plataforma, iniciando el ciclo de filtrado y actualización de gráficos sin necesidad de recargar la página web.
  • Valor Gerencial: Este modelo proporciona herramientas de autogestión de analytics (Self-Service BI) que permiten a los tomadores de decisiones explorar hipótesis y visualizar métricas clave de manera intuitiva y ágil.
  • Palabras Técnicas: Dashboard Ejecutivo, Visual Analytics, Self-Service BI, Widgets (Sliders, Botones).

Tutorial elaborado por Hadson Paredes - 2026

Publicar un comentario

0 Comentarios