Saltar al contenido
Aplicaciones de Datos con Streamlit en Python

Creación de una aplicación básica con Streamlit

Introducción

Streamlit: Herramienta Popular en Desarrollo Web y Ciencia de Datos

Streamlit es una de las herramientas más populares en el mundo del desarrollo web y la ciencia de datos en Python. Permite construir aplicaciones web interactivas y visualizaciones de datos con bastante facilidad. La creación de aplicaciones con Streamlit no requiere de conocimientos avanzados de programación ni de una gran configuración previa. En lugar de eso, es una forma eficiente y efectiva de incorporar visualizaciones de datos interactivas y personalizadas a cualquier proyecto.

¿Qué Aprenderás en Este Curso?

En este curso, aprenderás a crear una aplicación básica de visualización de datos en Python, utilizando la librería de Streamlit. Aprenderás a cómo cargar datos, limpiarlos y visualizarlos, crear tablas, diagramas, mapas, entre otras gráficas. Además, explorarás cómo crear formas interactivas, como botones y widgets, para mejorar la experiencia del usuario al interactuar con tus datos.

Resultados del Curso

Al finalizar el curso, tendrás las herramientas necesarias para crear aplicaciones web personalizadas para visualizar y analizar datos de cualquier naturaleza con Streamlit.

Resumen

Creación de una Aplicación Básica de Visualización de Datos con Streamlit

Por supuesto, la creación de una aplicación básica de visualización de datos con Streamlit es un proceso muy sencillo y te lo puedo explicar paso a paso:

  1. Instalación de Streamlit

    En primer lugar, necesitamos tener instalado Streamlit en nuestro entorno de Python. Si no lo has hecho aún, lo puedes instalar utilizando el siguiente comando en tu terminal:

    pip install streamlit
  2. Creación de un archivo Python

    Creamos un archivo de Python con extensión .py, en el cual importaremos los paquetes necesarios como pandas y numpy.

  3. Generación de la interfaz de la aplicación

    Dentro de nuestro archivo de Python, creamos una función que será la encargada de generar la interfaz de la aplicación. Esta función debe estar decorada con el decorador st.cache() para que Streamlit cachee el resultado de las funciones para que las siguientes ejecuciones sean más rápidas. Dentro de la función, podemos utilizar los widgets de Streamlit para interactuar con el usuario y para mostrar la información en pantalla.

  4. Ejecución de la aplicación

    Una vez que hemos definido la interfaz de nuestra aplicación, podemos ejecutarla con el siguiente comando en la terminal:

    streamlit run nombre_del_archivo.py
  5. Interacción y visualización

    Una vez ejecutamos este comando, se abrirá una ventana de nuestro navegador web predeterminado, en la que se mostrará nuestra aplicación. Podemos interactuar con los widgets que hemos definido anteriormente para visualizar los datos que queremos mostrar.

En general, la creación de una aplicación básica con Streamlit es muy sencilla y se puede realizar en pocos minutos si ya tienes experiencia en programación en Python. Con un poco de práctica, puedes crear aplicaciones más complejas y visualmente atractivas.

Aplicación teórica

Creación de una Aplicación Básica de Visualización de Datos con Streamlit

Lo primero que debes hacer es importar las librerías necesarias. En este caso, vamos a utilizar pandas para cargar y manipular los datos, y Streamlit para crear la aplicación:

import streamlit as st
import pandas as pd

Lo siguiente es cargar los datos. Puedes hacerlo de diferentes maneras, pero en este caso utilizaremos pandas.read_csv para cargar un archivo CSV que contiene información de libros:

df = pd.read_csv("https://raw.githubusercontent.com/dataprofessor/data/master/books.csv")

Una vez que tenemos los datos cargados, podemos proceder a crear la interfaz de la aplicación con Streamlit. En este ejemplo, crearemos una aplicación que nos permita visualizar los libros filtrando por autor, año de publicación y precio:

# Encabezado de la aplicación
st.header("Visualización de datos - Libros")

# Sección para filtrar los datos
st.sidebar.header("Filtros")
author = st.sidebar.selectbox("Autor", df["author"].unique())
year = st.sidebar.slider("Año de publicación", 1900, 2022, 2020)
price = st.sidebar.slider("Precio", 0.0, 100.0, (0.0, 100.0))

# Filtrar los datos en base a los filtros establecidos
filtered_df = df[(df["author"] == author) & (df["year"] == year) & (df["price"] >= price[0]) & (df["price"] <= price[1])]

# Mostrar los resultados
st.write(filtered_df)

Con esto, ya hemos creado nuestra aplicación básica de visualización de datos con Streamlit. En la sección de filtros de la aplicación, el usuario puede seleccionar el autor, el año de publicación y el rango de precios que desea filtrar. Una vez que se aplican los filtros, se muestra una tabla con los resultados filtrados.

Aplicación práctica

Creación de una Aplicación de Visualización de Datos con Streamlit en Python

  1. Instalación de la librería de Streamlit

    Lo primero es instalar la librería de Streamlit. Para ello, abrimos una terminal y escribimos:

    pip install streamlit
  2. Creación del archivo Python

    Una vez instalada, creamos un archivo ".py" y lo abrimos con nuestro editor de código preferido. Por ejemplo, "app.py".

  3. Importación de librerías

    Importamos las librerías que necesitaremos: streamlit, pandas y matplotlib. Si no las tienes instaladas, debes escribir en tu terminal:

    pip install pandas
    pip install matplotlib
  4. Definición del título de la aplicación

    En el archivo "app.py", definimos el título de nuestra aplicación con el siguiente código:

    st.title('Mi aplicación de visualización de datos')
  5. Carga de archivo CSV

    Pedimos al usuario que cargue un archivo CSV con datos:

    datafile = st.file_uploader('Cargar archivo CSV', type='csv')
    if datafile:
        df = pd.read_csv(datafile)
  6. Visualización de datos en tabla

    Si el usuario cargó un archivo CSV, mostramos los datos en una tabla:

    if 'df' in locals():
        st.write(df)
  7. Añadir visualizaciones básicas

    Añadimos algunas visualizaciones básicas, como un histograma y un gráfico de dispersión:

    if 'df' in locals():
        st.subheader('Visualizaciones')
        # Histograma
        plt.hist(df['columna1'])
        st.pyplot()
        # Gráfico de dispersión
        plt.scatter(df['columna1'], df['columna2'])
        st.pyplot()
  8. Ejecución de la aplicación

    Finalmente, ejecutamos la aplicación con el siguiente comando en nuestra terminal (asegurándonos de estar en la misma carpeta del archivo "app.py"):

    streamlit run app.py

    Streamlit abrirá nuestra aplicación en el navegador, desde donde podemos cargar un archivo CSV y visualizar los datos y gráficos que hemos generado.