Cree e implemente su primer tablero en tiempo real con Streamlit

Estás leyendo la publicación: Cree e implemente su primer tablero en tiempo real con Streamlit

Un panel de control es una especie de interfaz gráfica de usuario que con frecuencia permite un acceso rápido a los indicadores clave de rendimiento (KPI) relacionados con un determinado objetivo o actividad empresarial. En otros contextos, “tablero” se refiere a un “informe de progreso” o “ayuda a resumir el progreso” y es un tipo de visualización de datos. Los tableros pueden ayudar a los líderes de la empresa a ahorrar tiempo y tomar mejores decisiones al brindar esta descripción general. En este artículo, crearemos e implementaremos tableros en python con la ayuda de Streamlit.

Tabla de contenido

  1. Acerca de Streamlit
  2. Creación de un tablero
  3. Implementación de un tablero

Comencemos con una breve introducción a Streamlit.

Acerca de Streamlit

Streamlit es un marco de Python gratuito, de código abierto que permite a los científicos de datos construir fácilmente paneles interactivos y aplicaciones web de aprendizaje automático sin conocimientos previos en el desarrollo web front-end. Si conoce Python, podrá utilizar Streamlit para desarrollar y distribuir aplicaciones web en horas, no en semanas. Streamlit es un conjunto de herramientas gratuito para crear tableros innovadores.

Beneficios

  • Cualquiera que entienda Python puede usar Streamlit. No hay requisitos de HTML o CSS.
  • Tiene un conjunto diverso de componentes de interfaz de usuario. Incluye prácticamente todos los componentes estándar de la interfaz de usuario, como una casilla de verificación, un control deslizante, una barra lateral plegable, botones de radio, carga de archivos, barra de progreso, etc. Además, estos componentes son bastante simples de utilizar.
  • Admite una variedad de bibliotecas de visualización interactiva, incluidas Latex, OpenCV, Vega-Lite y otras.

inconvenientes

  • Si bien no es difícil, aprender la sintaxis de Streamlit lleva algo de tiempo.
  • Streamlit no es muy adaptable. Está basado exclusivamente en Python, tiene una cantidad restringida de widgets y no se conecta con Python Notebooks.
  • El tamaño máximo de carga de datos es de 50Mb.
  • Solo hay soporte limitado de video/animación.
🔥 Recomendado:  10 impresionantes portátiles de Google Colab en difusión estable

¿Está buscando un repositorio completo de bibliotecas de Python utilizadas en ciencia de datos, echa un vistazo aquí.

Creación de un tablero

Comencemos instalando Streamlit.

! pip instalar streamlit -q

Importe algunas bibliotecas necesarias para la lectura, manipulación y visualización de datos.

importar pandas como pd importar numpy como np importar advertencias advertencias.filterwarnings(‘ignorar’) importar plotly.express como px

Lectura de datos y preprocesamiento para la visualización.

df =pd.read_csv(“Real-Time_Traffic_Incident_Reports.csv”) df[:8]

Los datos están relacionados con el delito, por lo que tiene los identificadores de los informes, la hora y la fecha en que ocurrió el delito y la categorización del delito. Limpiemos los datos y extraigamos la fecha y el año de los datos para su visualización.

df_utils=df.dropna(axis=0) df_utils.reset_index(drop=True,inplace=True) a=df_utils[‘Published Date’].str.split(” “) b=[]
para i en el rango (0, len (a)): c = a[i][0]

b.append(c) d=df_utils[‘Status Date’].str.split(” “) e=[]
para i en el rango (0, len (a)): f = d[i][0]

e.append(f) g=df_utils[‘pub_date’].str.split(‘/’) h=[]
para i en el rango (0, len (a)): f = g[i][2]

h.append(f) df_utils[‘pub_date’]=b df_utils[‘stat_date’]=e df_utils[‘pub_year’]=h df_utils[:5]

Los datos están listos para ser utilizados para la parte de visualización. Antes de eso, creemos un python para la aplicación web. Este archivo de aplicación web será utilizado por streamlit para alojar el tablero en el servidor local. Este artículo se basa en el cuaderno python de google colab, por lo que sería diferente del kernel de tiempo de ejecución local.

%%writefile aplicación.py

Esta línea de código creará un archivo python llamado ‘app’ y ‘%%writefile’ sobrescribirá todas las versiones anteriores de app.py con la nueva. Estamos usando esto para ahorrar tiempo y energía al no editar uno por uno. El código anterior sería tal como es, simplemente copie y pegue y escape todos los códigos de impresión. Así que el código se verá así.

🔥 Recomendado:  Estudio de caso de sitio al aire libre (marzo de 2023): ingresos de $ 4,511 con 82,000 páginas vistas

%%writefile app.py import streamlit as st import pandas as pd import numpy as np import plotly.express as px df = pd.read_csv(“/content/drive/MyDrive/Datasets/Real-Time_Traffic_Incident_Reports.csv”) df_utils=df .dropna(axis=0) df_utils.reset_index(drop=True,inplace=True) a=df_utils[‘Published Date’].str.split(” “) # para la fecha de publicación b=[]
para i en el rango (0, len (a)): c = a[i][0]

b.append(c) #para fecha de estado d=df_utils[‘Status Date’].str.split(” “) e=[]
para i en el rango (0, len (a)): f = d[i][0]

e.append(f) df_utils[‘pub_date’]=b df_utils[‘stat_date’]=e g=df_utils[‘pub_date’].str.split(‘/’) h=[]
para i en el rango (0, len (a)): f = g[i][2]

h.append(f) df_utils[‘pub_year’]=h

El archivo de la aplicación ahora se actualiza con datos preprocesados. Escribamos el código para el front-end del tablero.

st.header(“Panel en tiempo real”) chart_selector = st.sidebar.selectbox(“Seleccione el tipo de gráfico”, [‘Pie chart’,’Bar chart’]) col1, col2 = st.columns(2)

Si conoce las etiquetas y elementos HTML, sería mucho más fácil para usted entender el código streamlit. La etiqueta creará un encabezado para la página en este artículo, es “Panel de control en tiempo real”. De manera similar, el componente de la barra lateral creará un menú desplegable y el usuario puede seleccionar entre las opciones.

El componente de columna dividirá la pantalla de salida en tantas columnas como se defina. Aquí hemos utilizado sólo dos columnas. Hay un montón de componentes HTML y CSS que podrían usarse para modificar el tablero.

Entonces, según la opción seleccionada en el menú desplegable, debemos mostrar los gráficos en consecuencia. Vamos a crear algunos gráficos y actualizar el archivo de la aplicación.

if chart_selector==’Gráfico circular’: gráfico_circular = px.pie(df_utils, valores=”año_pub”, nombres=”Problema informado”) col1.plotly_chart(gráfico_circular,use_container_width = True) else: gráfico_barra = px.histogram(df_utils, x=”Problema informado”, color=”pub_year”) col2.plotly_chart(bar_chart,use_container_width = True)

Implementación de un tablero

El archivo de la aplicación está listo para implementarse en el servidor local. Como en este artículo de Google, se usa el cuaderno de colab, por lo que las cosas serán diferentes del alojamiento de tiempo de ejecución local. En general, para el alojamiento en colab se usa ‘Ngrok’, que es un poco complejo, pero hay una solución más fácil, el ‘túnel local’. En este artículo, se utilizará el ‘túnel local’ para alojar la aplicación.

🔥 Recomendado:  ¿Qué es el costo por cliente potencial (CPL)? ¿Cómo seducir a los anunciantes con él?

! ejecutar streamlit app.py y npx localtunnel –port 8501

Esto descargará el túnel local y creará un enlace web para la aplicación streamlit. Por cada ejecución de este código, generará un nuevo enlace.

Una vez que se genera la URL, haga clic en eso y se redirigirá a una página de advertencia que advierte sobre el phishing, ya que uno puede duplicar cualquier aplicación web y alojar esa aplicación. La página se verá algo como esto.

Simplemente haga clic en el botón que dice ‘Haga clic para continuar’ y se cargará la aplicación web optimizada. A veces lleva tiempo según el tamaño de los datos, la conexión a Internet, etc. Este es un ejemplo de cómo se ve el panel anterior.

Ultimas palabras

Streamlit es sencillo de usar y da buenos resultados, aunque sólo está pensado para programas básicos. Las aplicaciones de varias páginas con diseños complicados no están realmente pensadas para eso, lo cual es comprensible. Con este artículo, hemos entendido cómo diseñar un tablero e implementarlo en un servidor con la ayuda de Streamlit.

Referencias

Tabla de Contenido