Skip to content

[Explicado] Selectbox do Streamlit: Uso, Parâmetros e Exemplos

O Streamlit revolucionou a forma como os desenvolvedores Python criam aplicativos de dados. É uma poderosa biblioteca de código aberto que permite aos desenvolvedores transformar scripts de dados em aplicativos da web compartilháveis em apenas algumas linhas de código. Um dos recursos principais do Streamlit é seus widgets interativos, e entre eles, o st.selectbox se destaca devido à sua versatilidade e uso generalizado.

st.selectbox é um widget que exibe uma caixa de seleção em seu aplicativo Streamlit. Ele permite que os usuários selecionem uma opção de um menu suspenso, tornando-se uma ótima ferramenta para melhorar a interatividade do seu aplicativo. Mas como ele funciona e como você pode aproveitar ao máximo? Vamos mergulhar e explorar.

Você já ouviu falar dessa incrível ferramenta de Análise e Visualização de Dados, que pode transformar facilmente seu aplicativo Streamlit em um Tableau?

PyGWalker (opens in a new tab) é uma biblioteca Python que ajuda você a incorporar facilmente uma interface semelhante ao Tableau em seu próprio aplicativo Streamlit sem esforço. Confira este incrível vídeo produzido por Sven, do Coding is Fun (opens in a new tab), que demonstra os passos detalhados para capacitar seu aplicativo Streamlit com essa poderosa Biblioteca de Visualização de Dados em Python!


Agradecimentos especiais a Sven e sua grande contribuição (opens in a new tab) para a comunidade PyGWalker!

Além disso, você também pode conferir a Página do GitHub do PyGWalker (opens in a new tab) para mais exemplos do PyGWalker.

Entendendo o st.selectbox

O que é st.selectbox?

st.selectbox é uma função do Streamlit que cria um widget de caixa de seleção. É um elemento de interface do usuário que exibe uma lista de opções para o usuário. O usuário pode selecionar uma opção da lista, que pode então ser usada no aplicativo para diversos fins, como filtrar dados, selecionar modelos ou controlar visualizações.

import streamlit as st
 
opcao = st.selectbox(
    'Como você gostaria de ser contatado?',
    ('Email', 'Telefone residencial', 'Telefone celular')
)
st.write('Você selecionou:', opcao)

Neste exemplo, st.selectbox cria uma caixa de seleção com três opções: 'Email', 'Telefone residencial' e 'Telefone celular'. A opção selecionada é armazenada na variável opcao, que pode então ser usada em outro lugar do código.

Parâmetros do st.selectbox

st.selectbox aceita vários parâmetros para controlar seu comportamento:

  • label: Uma string que será usada como rótulo da caixa de seleção.
  • options: Uma lista de opções para exibir na caixa de seleção. Isso pode ser qualquer lista Python válida ou um objeto semelhante a um array.
  • index: O índice da opção selecionada por padrão. Se não for fornecido, a primeira opção será selecionada por padrão.
  • format_func: Uma função que recebe uma opção como argumento e retorna uma representação em string dela. Isso é útil se você quiser exibir opções de uma maneira específica.

O que o st.selectbox retorna?

st.selectbox retorna a opção atualmente selecionada. Isso pode ser uma string, um número ou qualquer outro tipo de objeto, dependendo das opções fornecidas. Esse valor retornado pode então ser usado em seu aplicativo, por exemplo, para filtrar um DataFrame, controlar uma visualização ou acionar um cálculo.

Trabalhando com st.selectbox

Como usar st.selectbox

Usar st.selectbox é simples. Primeiro, você precisa importar a biblioteca Streamlit. Em seguida, você pode chamar st.selectbox com os parâmetros de rótulo e opções. A opção selecionada será retornada pela função.

import streamlit as st
 
## Definir as opções
opcoes = ['Opção 1', 'Opção 2', 'Opção 3']
 
## Criar a caixa de seleção
opcao_selecionada = st.selectbox('Escolha uma opção:', opcoes)
 
## Exibir a opção selecionada
st.write('Você selecionou:', opcao_selecionada)

Neste exemplo, a caixa de seleção exibirá as opções 'Opção 1', 'Opção 2' e 'Opção 3'.

Exemplos de Uso do st.selectbox

st.selectbox do Streamlit é um widget versátil que pode ser usado em uma variedade de cenários. Vamos explorar alguns exemplos para entender melhor seu uso.

Exemplo 1: Filtragem de Dados

Um uso comum do st.selectbox é permitir que os usuários filtrem dados. Por exemplo, se você tiver um DataFrame contendo informações sobre países diferentes, você poderia usar st.selectbox para permitir que o usuário selecione um país e exiba apenas os dados para esse país.

import streamlit as st
import pandas as pd
 
## Carregar os dados
dados = pd.read_csv('dados.csv')
 
## Obter a lista de países
paises = dados['País'].unique()
 
## Criar a caixa de seleção
pais_selecionado = st.selectbox('Escolha um país:', paises)
 
## Filtrar os dados
dados_filtrados = dados[dados['País'] == pais_selecionado]
 
## Exibir os dados filtrados
st.write(dados_filtrados)

Neste exemplo, st.selectbox é usado para criar um menu suspenso com os países únicos do DataFrame. A seleção do usuário é então usada para filtrar o DataFrame e exibir apenas os dados para o país selecionado.

Exemplo 2: Seleção de Modelo

Outro uso comum do st.selectbox é em aplicações de aprendizado de máquina, onde ele pode ser usado para permitir que o usuário selecione um modelo. Por exemplo, se você estiver construindo um aplicativo de classificação, você poderia usar st.selectbox para permitir que o usuário escolha entre diferentes classificadores.

import streamlit as st
from sklearn.ensemble import RandomForestClassifier
```python
from sklearn.svm import SVC
 
## Definir os modelos
modelos = {
    'Random Forest': RandomForestClassifier(),
    'SVM': SVC()
}
 
## Criar a caixa de seleção
modelo_selecionado = st.selectbox('Escolha um modelo:', list(modelos.keys()))
 
## Obter o modelo selecionado
modelo = modelos[modelo_selecionado]
 
## Usar o modelo...

Neste exemplo, st.selectbox é usado para criar um menu suspenso com os modelos disponíveis. A seleção do usuário é então utilizada para obter o modelo correspondente do dicionário.

Explorando Outros Widgets do Streamlit

Enquanto st.selectbox é um widget poderoso, o Streamlit oferece muitos outros widgets que podem ser usados para criar aplicações interativas. Vamos explorar alguns deles.

st.checkbox

st.checkbox é outro widget útil do Streamlit. Ele cria uma caixa de seleção que o usuário pode marcar ou desmarcar. Assim como st.selectbox, st.checkbox retorna o estado atual da caixa de seleção, que pode ser usado em seu aplicativo.

import streamlit as st
 
## Criar a caixa de seleção
esta_marcado = st.checkbox('Marque-me')
 
## Exibir o estado da caixa de seleção
st.write('A caixa de seleção está', 'marcada' if esta_marcado else 'desmarcada')

st.slider

st.slider é um widget que cria um controle deslizante. O usuário pode mover o controle deslizante para selecionar um valor dentro de um intervalo especificado. st.slider retorna o valor atual do controle deslizante.

import streamlit as st
 
## Criar o controle deslizante
valor = st.slider('Selecione um valor', 0, 100, 50)
 
## Exibir o valor selecionado
st.write('Você selecionou:', valor)

Estes são apenas alguns exemplos dos muitos widgets disponíveis no Streamlit. Ao combinar esses widgets, você pode criar aplicações altamente interativas e amigáveis ao usuário.

Uso Avançado e Considerações

O st.selectbox do Streamlit é um widget poderoso, mas existem algumas considerações e uso avançado que você deve estar ciente para aproveitá-lo ao máximo.

Habilitando/Desabilitando a Pesquisa de Texto no st.selectbox

Uma das funcionalidades do st.selectbox é permitir que os usuários pesquisem opções digitando texto. Isso pode ser muito útil quando a caixa de seleção tem um grande número de opções. No entanto, em alguns casos, você pode querer desabilitar essa funcionalidade. Atualmente, o Streamlit não oferece uma maneira incorporada de desabilitar a pesquisa de texto no st.selectbox, mas isso pode mudar em versões futuras da biblioteca.

Valor Padrão e Índice

Por padrão, st.selectbox seleciona a primeira opção da lista. No entanto, você pode alterar a opção selecionada por padrão usando o parâmetro index. O parâmetro index recebe um número inteiro que representa o índice da opção a ser selecionada por padrão.

import streamlit as st
 
# Criar a caixa de seleção com 'Opção 2' selecionada por padrão
opcao_selecionada = st.selectbox('Escolha uma opção:', ['Opção 1', 'Opção 2', 'Opção 3'], index=1)
 
# Exibir a opção selecionada
st.write('Você selecionou:', opcao_selecionada)

Neste exemplo, 'Opção 2' é selecionada por padrão pois seu índice (1) é passado para o parâmetro index.

Formatação Personalizada com format_func

st.selectbox permite que você personalize como as opções são exibidas usando o parâmetro format_func. format_func é uma função que recebe uma opção como entrada e retorna uma representação dela em forma de string.

import streamlit as st
 
# Definir uma função de formatação
def format_func(opcao):
    return opcao.upper()
 
# Criar a caixa de seleção com formatação personalizada
opcao_selecionada = st.selectbox('Escolha uma opção:', ['Opção 1', 'Opção 2', 'Opção 3'], format_func=format_func)
 
# Exibir a opção selecionada
st.write('Você selecionou:', opcao_selecionada)

Neste exemplo, as opções são exibidas em caixa alta graças ao parâmetro format_func.

Conclusão

O st.selectbox do Streamlit é um widget versátil e poderoso que pode melhorar significativamente a interatividade de seus aplicativos Python. Seja construindo uma ferramenta de visualização de dados, um aplicativo de aprendizado de máquina ou qualquer outro tipo de aplicativo interativo, o st.selectbox pode tornar seu aplicativo mais amigável e intuitivo. Portanto, experimente o st.selectbox e veja como ele pode melhorar seus aplicativos do Streamlit!

Você já ouviu falar dessa incrível ferramenta de Análise e Visualização de Dados, que transforma seu aplicativo Streamlit em um Tableau?

PyGWalker (opens in a new tab) é uma biblioteca Python que ajuda você a facilmente incorporar uma interface semelhante ao Tableau em seu próprio aplicativo Streamlit sem esforço.

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

Perguntas Frequentes

  1. Qual é o valor padrão do st.selectbox no Streamlit? Por padrão, o st.selectbox seleciona a primeira opção da lista. No entanto, você pode especificar uma opção padrão diferente usando o parâmetro index.

  2. Como posso personalizar a exibição das opções no st.selectbox? Você pode personalizar como as opções são exibidas no st.selectbox usando o parâmetro format_func. format_func é uma função que recebe uma opção como entrada e retorna uma representação dela em forma de string.

  3. É possível desabilitar a funcionalidade de pesquisa de texto no st.selectbox? Atualmente, o Streamlit não oferece uma maneira incorporada de desabilitar a funcionalidade de pesquisa de texto no st.selectbox. No entanto, isso pode mudar em versões futuras da biblioteca.