Home
Login
streamlit/streamlit

Streamlit es una biblioteca de Python que te permite crear hermosas aplicaciones web personalizadas con puro código Python, para áreas como aprendizaje automático, ciencia de datos y más.

Apache-2.0Python 39.9kstreamlit Last Updated: 2025-06-14
https://github.com/streamlit/streamlit

Streamlit: La forma más rápida de construir aplicaciones de datos en Python

Introducción

Streamlit es una biblioteca de código abierto de Python diseñada para permitir a los científicos de datos e ingenieros de aprendizaje automático crear aplicaciones web atractivas e interactivas de forma rápida y sencilla. Simplifica el proceso de transformar scripts de ciencia de datos en aplicaciones web compartibles, sin necesidad de experiencia en desarrollo frontend.

Ideas centrales:

  • Adopta los scripts de Python: Streamlit te permite construir aplicaciones usando scripts de Python puro, sin necesidad de escribir HTML, CSS o JavaScript.
  • Actualizaciones en tiempo real: Las aplicaciones de Streamlit se actualizan automáticamente cada vez que modificas el código y lo guardas, lo que permite una iteración y experimentación rápidas.
  • Sencillo y fácil de usar: Streamlit proporciona una API intuitiva que facilita la adición de varios elementos de la interfaz de usuario, como texto, gráficos, controles deslizantes, botones, etc.
  • Impulsado por datos: Streamlit está diseñado específicamente para flujos de trabajo de ciencia de datos, lo que facilita la visualización y manipulación de datos.
  • No se necesita experiencia en frontend: Streamlit abstrae la complejidad del desarrollo frontend, permitiéndote concentrarte en los datos y los modelos.

Información del repositorio del proyecto

  • Repositorio de GitHub: https://github.com/streamlit/streamlit
  • Lenguaje de programación principal: Python
  • Licencia: Apache License 2.0
  • Stars: Más de 23k (a partir del 26 de enero de 2024)
  • Forks: Más de 2k (a partir del 26 de enero de 2024)
  • Colaboradores: Más de 300

Características principales

  • API sencilla y fácil de usar: Streamlit proporciona una API concisa para crear varios elementos de la interfaz de usuario, como:
    • st.write(): Muestra texto, datos, gráficos, etc.
    • st.slider(): Crea un control deslizante.
    • st.button(): Crea un botón.
    • st.selectbox(): Crea un cuadro de selección desplegable.
    • st.dataframe(): Muestra un DataFrame de Pandas.
    • st.line_chart(): Muestra un gráfico de líneas.
    • st.map(): Muestra un mapa.
    • st.file_uploader(): Carga archivos
  • Reejecución automática: Las aplicaciones de Streamlit se reejecutan automáticamente cada vez que modificas el código y lo guardas, lo que permite una iteración rápida.
  • Caché: Streamlit tiene un mecanismo de caché incorporado que puede almacenar en caché los resultados de los cálculos, mejorando así el rendimiento de la aplicación. El decorador @st.cache_data se puede usar para almacenar en caché los resultados de las funciones.
  • Estado de la sesión: Streamlit te permite administrar el estado de la aplicación usando st.session_state, lo que permite crear aplicaciones interactivas más complejas.
  • Componentes: Streamlit admite componentes personalizados, lo que te permite extender la funcionalidad de Streamlit e integrar bibliotecas de terceros.
  • Temas: Streamlit te permite personalizar la apariencia de la aplicación, incluyendo colores, fuentes, etc.
  • Despliegue: Las aplicaciones de Streamlit se pueden implementar fácilmente en varias plataformas, como Streamlit Community Cloud, Heroku, AWS, Google Cloud, etc.
  • Soporte de la comunidad: Streamlit tiene una comunidad activa que proporciona abundante documentación, tutoriales y ejemplos.

Módulos y funcionalidades principales

  • streamlit: La biblioteca central, que contiene la API para construir aplicaciones.
  • streamlit.components.v1: La API para crear componentes personalizados.
  • streamlit.config: Para configurar el comportamiento de las aplicaciones de Streamlit.
  • streamlit.delta_generator: La API para generar elementos de la interfaz de usuario.
  • streamlit.runtime: El entorno de ejecución de las aplicaciones de Streamlit.
  • streamlit.web: El servidor web de las aplicaciones de Streamlit.

Casos de uso

Streamlit se puede utilizar para construir varias aplicaciones de datos, como:

  • Visualización de datos: Crear gráficos y paneles interactivos para explorar y analizar datos.
  • Despliegue de modelos de aprendizaje automático: Desplegar modelos de aprendizaje automático como aplicaciones web para que los usuarios puedan interactuar con los modelos.
  • Exploración de datos: Construir herramientas interactivas para explorar y comprender los datos.
  • Anotación de datos: Crear herramientas de anotación de datos para ayudar a anotar datos.
  • Educación y demostración: Crear demostraciones interactivas para mostrar conceptos y técnicas de ciencia de datos.
  • Herramientas internas: Construir herramientas de datos internas para mejorar la eficiencia del equipo.

Código de ejemplo

El siguiente es un ejemplo de una aplicación simple de Streamlit:

import streamlit as st
import pandas as pd
import numpy as np

st.title('Mi primera aplicación de Streamlit')

st.write('¡Hola, mundo!')

# Crea un DataFrame
data = pd.DataFrame({
    'col1': [1, 2, 3, 4],
    'col2': [5, 6, 7, 8]
})

# Muestra el DataFrame
st.write('Aquí hay un DataFrame:')
st.dataframe(data)

# Crea un control deslizante
x = st.slider('Selecciona un valor para x', 0, 100, 50)

# Muestra el valor del control deslizante
st.write('El valor de x es:', x)

# Crea un gráfico de números aleatorios
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=['a', 'b', 'c'])

st.line_chart(chart_data)

Instalación

Puedes instalar Streamlit usando pip:

pip install streamlit

Ejecución

Para ejecutar una aplicación de Streamlit, ejecuta el siguiente comando en la línea de comandos:

streamlit run your_app.py

Donde your_app.py es el archivo Python de tu aplicación de Streamlit.

Ventajas

  • Desarrollo rápido: Streamlit te permite construir aplicaciones de datos rápidamente, sin necesidad de escribir una gran cantidad de código.
  • Fácil de usar: Streamlit proporciona una API intuitiva que facilita la adición de varios elementos de la interfaz de usuario.
  • Interactividad: Las aplicaciones de Streamlit son interactivas, lo que permite a los usuarios interactuar con los datos.
  • Implementabilidad: Las aplicaciones de Streamlit se pueden implementar fácilmente en varias plataformas.
  • Soporte de la comunidad: Streamlit tiene una comunidad activa que proporciona abundante documentación, tutoriales y ejemplos.

Desventajas

  • Personalización limitada: La personalización de Streamlit es relativamente limitada, y puede que no satisfaga las necesidades de todas las aplicaciones.
  • Rendimiento: Para aplicaciones complejas, el rendimiento de Streamlit puede no ser tan bueno como el de los frameworks web tradicionales.
  • Control frontend más débil: No se puede controlar la interfaz de usuario tan finamente como con los frameworks frontend tradicionales.

Resumen

Streamlit es una herramienta poderosa que puede ayudar a los científicos de datos e ingenieros de aprendizaje automático a construir aplicaciones web atractivas e interactivas de forma rápida. Simplifica el proceso de transformar scripts de ciencia de datos en aplicaciones web compartibles, sin necesidad de experiencia en desarrollo frontend. Si bien tiene algunas limitaciones en términos de personalización y rendimiento, su facilidad de uso y capacidad de desarrollo rápido lo convierten en una opción ideal para muchos proyectos de ciencia de datos.

Todos los detalles, por favor, consulta la página web oficial (https://github.com/streamlit/streamlit)