¿Cómo crear en Streamlit un Datetime Slider o deslizante de fechas.

Creando un control deslizante interactivo de fecha y hora con Streamlit en Python. Fácil y potente.

Un Streamlit Datetime Slider interactivo con la fecha mínima de 2022-01-01 y fecha máxima de 2023-07-01.


Ayer, me pidieron configurar de manera sencilla un control deslizante de fecha y hora en Streamlit. Anteriormente, requería cierto esfuerzo y ajustes en la función st.slider(). Sin embargo, ahora es posible lograrlo de manera fluida, ya que la función del control deslizante funciona casi a la perfección con fechas.

import datetime
import streamlit as st

MIN_MAX_RANGE = (datetime.datetime(2022,1,1), datetime.datetime(2023,7,1))
PRE_SELECTED_DATES = (datetime.datetime(2023,1,1), datetime.datetime(2023,7,1))

selected_min, selected_ax = st.slider(
    "Datetime slider",
    value=PRE_SELECTED_DATES,
    min_value=MIN_MAX_RANGE[0],
    max_value=MIN_MAX_RANGE[1],
)

Para configurar los pasos del control deslizante cuando el usuario interactúa con él, puedes hacerlo de la siguiente manera. Ten en cuenta que los valores intermedios no serán seleccionables por defecto y podrían requerir un paso adicional. Además, existe la opción de personalizar el formato de la fecha para su visualización.

selected_min, selected_ax = st.slider(
    "Datetime slider",
    value=PRE_SELECTED_DATES,
    step=datetime.timedelta(days=2),
    min_value=MIN_MAX_RANGE[0],
    max_value=MIN_MAX_RANGE[1],
    format="YYYY-MM-DD",    
)

Otra funcionalidad de los controles deslizantes es incluir un ayudante, que usamos con bastante frecuencia. Sin embargo, ten en cuenta que en ciertas versiones de Streamlit, utilizar el argumento “help” en el control deslizante de fecha y hora podría alterar la visualización del título del control deslizante.


Puedes acceder a más contenido gratis sobre Streamlit en nuestro blog TypeThePipe


Python Streamlit
Carlos Vecina
Carlos Vecina
Senior Data Scientist at Jobandtalent

Senior Data Scientist at Jobandtalent | AI & Data Science para aportar valor en la empresa

Relacionado