Skip to content

Slider de datas do Streamlit - Uma introdução passo a passo

Updated on

No mundo da visualização de dados, a capacidade de filtrar e manipular dados interativamente é crucial. Uma das ferramentas que ganharam popularidade na comunidade Python é o slider de datas do Streamlit. Essa poderosa função permite que os usuários filtrem dados de séries temporais de forma interativa, proporcionando uma experiência do usuário mais intuitiva e envolvente. Neste guia, iremos nos aprofundar nos detalhes do slider de datas do Streamlit, fornecendo o conhecimento e exemplos necessários para implementar efetivamente essa função em seus próprios projetos.

O Streamlit é uma biblioteca Python de código aberto que simplifica o processo de criação de aplicativos web personalizados para projetos de aprendizado de máquina e ciência de dados. Um dos seus recursos mais destacados é o slider de datas, um widget que permite que os usuários selecionem um intervalo de datas movendo um controle ao longo de uma linha de tempo. Esse recurso é particularmente útil ao lidar com dados de séries temporais, pois permite que os usuários filtrem e visualizem facilmente os dados em períodos de tempo específicos.

O que é um slider de datas do Streamlit?

O slider de datas do Streamlit é um widget que permite que os usuários selecionem um intervalo de datas movendo um controle ao longo de uma linha de tempo. Esse recurso é particularmente útil ao lidar com dados de séries temporais, pois permite que os usuários filtrem e visualizem facilmente os dados em períodos de tempo específicos. O slider de datas do Streamlit é criado usando a função slider, que recebe uma faixa de datas e retorna o intervalo de datas selecionado.

Para criar um slider de datas no Streamlit, você precisa usar a função slider com os seguintes parâmetros:

  • label: Uma string que serve como rótulo para o slider.
  • min_value: O valor mínimo do slider. Isso deve ser um objeto de data.
  • max_value: O valor máximo do slider. Isso também deve ser um objeto de data.
  • value: O valor inicial do slider. Isso pode ser um único objeto de data ou uma dupla de dois objetos de data representando um intervalo.
  • step: O incremento entre os valores do slider. Isso deve ser um objeto de timedelta.

Aqui está um exemplo de como criar um slider de datas no Streamlit:

import streamlit as st
from datetime import datetime, timedelta
 
# Crie um slider de datas com um intervalo de uma semana
start_date = datetime(2020, 1, 1)
end_date = start_date + timedelta(weeks=1)
 
selected_date = st.slider(
    "Selecione um intervalo de datas",
    min_value=start_date,
    max_value=end_date,
    value=(start_date, end_date),
    step=timedelta(days=1),
)

Neste exemplo, o slider de datas permite que o usuário selecione um intervalo de datas na primeira semana de 2020. O parâmetro step é definido como um dia, o que significa que o usuário pode selecionar um intervalo de datas com uma precisão de um dia.

Como usar o slider de datas do Streamlit efetivamente?

Embora o slider de datas do Streamlit seja uma ferramenta poderosa, é importante utilizá-lo de forma efetiva para garantir uma boa experiência do usuário. Aqui estão algumas dicas sobre como usar o slider de datas do Streamlit de forma efetiva:

  1. Escolha um tamanho de incremento apropriado: O tamanho do incremento determina a granularidade do intervalo de datas que os usuários podem selecionar. Se o tamanho do incremento for muito grande, os usuários podem não conseguir selecionar o intervalo de datas exato que desejam. Por outro lado, se o tamanho do incremento for muito pequeno, o slider pode se tornar muito sensível e difícil de controlar. Portanto, é importante escolher um tamanho de incremento adequado para seus dados e caso de uso.

  2. Defina um valor padrão razoável: O valor padrão do slider determina o intervalo de datas inicial selecionado quando o usuário carrega o aplicativo pela primeira vez. É importante definir um valor padrão que seja razoável e relevante para seus dados. Por exemplo, se você estiver visualizando dados de vendas do último ano, poderá definir o valor padrão para o mês mais recente.

  3. Lide com dados ausentes de forma adequada: Se seus dados possuírem valores ausentes para determinadas datas, é importante lidar com esses valores ausentes de forma adequada. Uma maneira de fazer isso é interpolar os valores ausentes com base nos dados ao redor. Alternativamente, você pode permitir que os usuários selecionem apenas datas para as quais existam dados disponíveis.

  4. Atualize os valores do slider dinamicamente: Em alguns casos, você pode querer atualizar dinamicamente os valores do slider com base na entrada do usuário. Por exemplo, se você tiver um segundo slider que permite que os usuários selecionem um intervalo de tempo, poderá querer atualizar o slider de datas para refletir o intervalo de tempo selecionado. Isso pode ser feito usando a função st.empty, que cria um espaço reservado que pode ser preenchido posteriormente com um widget.

Aqui está um exemplo de como atualizar o slider de datas dinamicamente:

import streamlit as st
from datetime import datetime, timedelta
 
# Crie um espaço reservado para o slider de datas
slider_placeholder = st.empty()
 
# Crie um slider de tempo
time_range = st.slider("Selecione um intervalo de tempo", 0, 23, (0, 23))
 
# Atualize o slider de datas com base no intervalo de tempo selecionado
start_date = datetime(2020, 1, 1, time_range[0])
end_date = start_date + timedelta(hours=time_range[1] - time_range[0])
 
selected_date = slider_placeholder.slider(
    "Selecione um intervalo de datas",
    min_value=start_date,
    max_value=end_date,
    value=(start_date, end_date),
    step=timedelta(hours=1),
)

Neste exemplo, o slider de datas é atualizado sempre que o usuário altera o intervalo de tempo selecionado. A função slider_placeholder é usada para criar um espaço reservado para o slider de datas, que é preenchido com o slider atualizado quando o usuário altera o intervalo de tempo.

Slider de datas do Streamlit: Problemas comuns e soluções

Embora o controle deslizante de data e hora do Streamlit seja uma ferramenta poderosa, ele não está isento de peculiaridades. Aqui estão alguns problemas comuns que você pode encontrar ao usar o controle deslizante de data e hora do Streamlit, juntamente com soluções de como corrigi-los:

  1. Controle deslizante de data e hora não está funcionando: Se o controle deslizante de data e hora não estiver respondendo à entrada do usuário, é provável que o parâmetro value não esteja definido corretamente. Verifique se o parâmetro value é uma tupla de dois objetos datetime que representam o intervalo de datas inicial.

  2. Valor padrão do controle deslizante de data e hora não está funcionando: Se o controle deslizante de data e hora não estiver mostrando o valor padrão correto, é provável que o parâmetro value não esteja definido corretamente. Verifique se o parâmetro value é uma tupla de dois objetos datetime que representam o intervalo de datas padrão.

  3. Tamanho do controle deslizante de data e hora não está funcionando: Se o controle deslizante de data e hora não estiver sendo exibido no tamanho correto, é provável que o parâmetro format não esteja definido corretamente. O parâmetro format determina o formato de exibição das datas no controle deslizante. Verifique se o parâmetro format é uma string que especifica o formato de data desejado.

  4. Controle deslizante de data e hora não está exibindo todos os filtros: Se o controle deslizante de data e hora não estiver mostrando todos os filtros disponíveis, é provável que o parâmetro options não esteja definido corretamente. O parâmetro options determina os filtros disponíveis no controle deslizante. Verifique se o parâmetro options é uma lista de strings que representa os filtros desejados.

Aqui está um exemplo de como definir os parâmetros format e options:

import streamlit as st
from datetime import datetime, timedelta
 
# Crie um controle deslizante de data e hora com formato e opções personalizados
data_inicial = datetime(2020, 1, 1)
data_final = data_inicial + timedelta(weeks=1)
 
data_selecionada = st.slider(
    "Selecione um intervalo de datas",
    min_value=data_inicial,
    max_value=data_final,
    value=(data_inicial, data_final),
    step=timedelta(days=1),
    format="DD/MM/YYYY",
    options=["Dia", "Semana", "Mês", "Ano"],
)

Neste exemplo, o controle deslizante de data e hora exibe datas no formato "DD/MM/YYYY" e fornece opções para filtrar por dia, semana, mês ou ano.

Explorando Recursos Avançados do Controle Deslizante de Data e Hora do Streamlit

O controle deslizante de data e hora do Streamlit não se limita apenas à seleção básica de data e hora. Ele também oferece recursos avançados que podem aprimorar a funcionalidade de suas aplicações de visualização de dados. Um desses recursos é o controle deslizante de duas extremidades, que permite aos usuários selecionar um intervalo de datas em vez de uma única data.

O controle deslizante de duas extremidades pode ser criado no Streamlit passando uma tupla de dois objetos datetime como parâmetro value na função slider. Isso criará um controle deslizante com duas alças, permitindo aos usuários selecionar uma data de início e uma data de término.

Aqui está um exemplo de como criar um controle deslizante de duas extremidades no Streamlit:

import streamlit as st
from datetime import datetime, timedelta
 
# Crie um controle deslizante de data e hora de duas extremidades
data_inicial = datetime(2020, 1, 1)
data_final = data_inicial + timedelta(days=30)
 
intervalo_datas_selecionadas = st.slider(
    "Selecione um intervalo de datas",
    min_value=data_inicial,
    max_value=data_final,
    value=(data_inicial, data_inicial + timedelta(days=7)),
    step=timedelta(days=1),
)

Neste exemplo, o controle deslizante de duas extremidades permite que o usuário selecione um intervalo de datas dentro do primeiro mês de 2020. O parâmetro value é definido como uma tupla de dois objetos datetime, representando o intervalo de datas inicial.

Controle Deslizante de Data e Hora do Streamlit: Uma Ferramenta para Visualização de Dados Interativa

Em conclusão, o controle deslizante de data e hora do Streamlit é uma ferramenta poderosa para criar visualizações de dados interativas. Com sua interface fácil de usar e opções flexíveis de personalização, ele permite que os usuários explorem e compreendam dados de séries temporais de maneira mais intuitiva e envolvente.

Mas o Streamlit não se encaixa em todos os cenários de Visualização de Dados em Python. Existe uma biblioteca Python de código aberto que pode ajudar você a visualizar rapidamente o DataFrame Pandas com operações de arrastar e soltar dentro de uma interface visual.

PyGWalker é uma biblioteca Python para Análise Exploratória de Dados com Visualização. PyGWalker (opens in a new tab) pode simplificar sua análise de dados e fluxo de trabalho de visualização de dados em notebooks Jupyter, transformando seu dataframe pandas (e dataframe polars) em uma interface de usuário estilo Tableau para exploração visual.

Para começar, basta utilizar isso em seu notebook Jupyter:

pip install pygwalker

Depois de instalado, você pode importá-lo em seu script Python como qualquer outra biblioteca:

import pygwalker as pg

Não se esqueça de dar uma estrela ao PyGWalker no GitHub (opens in a new tab)!

PyGWalker para visualização de dados (opens in a new tab)

Perguntas Frequentes

  1. O que é um controle deslizante de data e hora do Streamlit?

O controle deslizante de data e hora do Streamlit é um widget que permite aos usuários selecionar um intervalo de datas deslizando uma alça ao longo de uma linha do tempo. Esse recurso é especialmente útil ao lidar com dados de séries temporais, pois permite que os usuários filtrem e visualizem facilmente dados em períodos de tempo específicos.

  1. Como posso criar um controle deslizante de data e hora no Streamlit?

Para criar um controle deslizante de data e hora no Streamlit, você precisa usar a função slider com os seguintes parâmetros: label, min_value, max_value, value e step. Os parâmetros min_value e max_value determinam o intervalo do controle deslizante, enquanto o parâmetro value determina o intervalo de datas inicial selecionado.

  1. Quais são os parâmetros para criar um controle deslizante de data e hora no Streamlit? Os parâmetros para criar um datetime slider no Streamlit são label, min_value, max_value, value e step. O parâmetro label é uma string que serve como rótulo para o slider. Os parâmetros min_value e max_value são objetos datetime que determinam o intervalo do slider. O parâmetro value é um único objeto datetime ou uma tupla de dois objetos datetime que representa o intervalo de data selecionado inicialmente. O parâmetro step é um objeto timedelta que determina o incremento entre os valores do slider.

Conclusão

Em conclusão, o datetime slider do Streamlit é uma ferramenta poderosa para criar visualizações interativas com dados de séries temporais. Ao entender como usá-lo de forma eficaz e como solucionar problemas comuns, você pode criar aplicativos de ciência de dados mais envolventes e amigáveis ao usuário. Seja você um cientista de dados experiente ou um iniciante que está começando, esperamos que este guia tenha lhe dado um entendimento mais profundo do datetime slider do Streamlit e como usá-lo em seus projetos.