🚀 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:
- 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.
- Sistema de Cache: Para que la re-ejecución sea eficiente, utiliza
@st.cache_datao@st.cache_resource, permitiendo que procesos pesados (como cargar 1GB de datos) se guarden en memoria y no se repitan innecesariamente. - Estado de Sesión: Maneja
st.session_statepara 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:
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).Mecanismo de Cache (@st.cache_data): Al llamar a
load_data, el sistema verifica si los datos dedata.csvya 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.
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.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
- Repositorio Streamlit-Learning
- Disponible como curso en Hadson.Tech
0 Comentarios