Skip to content
Tutoriels
Streamlit
[Expliqué] Streamlit Selectbox: Utilisation, Paramètres et Exemples

[Expliqué] Streamlit Selectbox: Utilisation, Paramètres et Exemples

Streamlit a révolutionné la manière dont les développeurs Python créent des applications de données. C'est une puissante bibliothèque open-source qui permet aux développeurs de transformer des scripts de données en applications web partageables en seulement quelques lignes de code. L'une des fonctionnalités clés de Streamlit est ses widgets interactifs, et parmi eux, st.selectbox se distingue par sa polyvalence et son utilisation répandue.

st.selectbox est un widget qui affiche une boîte de sélection dans votre application Streamlit. Il permet aux utilisateurs de choisir une option à partir d'un menu déroulant, ce qui en fait un excellent outil pour améliorer l'interactivité de votre application. Mais comment cela fonctionne-t-il et comment pouvez-vous en tirer le meilleur parti? Plongeons dans le sujet et explorons-le.

Avez-vous entendu parler de cet outil impressionnant d'analyse de données et de visualisation de données, qui peut facilement transformer votre application Streamlit en Tableau?

PyGWalker (opens in a new tab) est une bibliothèque Python qui vous aide à incorporer facilement une interface utilisateur similaire à celle de Tableau dans votre propre application Streamlit sans effort. Regardez cette vidéo étonnante réalisée par Sven de Coding is Fun (opens in a new tab) qui présente les étapes détaillées pour renforcer votre application Streamlit avec cette puissante bibliothèque de visualisation de données en Python!


Un grand merci à Sven et à sa contribution (opens in a new tab) à la communauté de PyGWalker!

De plus, vous pouvez également consulter la page GitHub de PyGWalker (opens in a new tab) pour plus d'exemples de PyGWalker.

Comprendre st.selectbox

Qu'est-ce que st.selectbox?

st.selectbox est une fonction de Streamlit qui crée un widget de boîte de sélection. C'est un élément d'interface utilisateur qui affiche une liste d'options à l'utilisateur. L'utilisateur peut sélectionner une option dans la liste, qui peut ensuite être utilisée dans l'application à diverses fins, telles que le filtrage des données, la sélection de modèles ou le contrôle des visualisations.

import streamlit as st
 
option = st.selectbox(
    'Comment souhaitez-vous être contacté?',
    ('E-mail', 'Téléphone fixe', 'Téléphone mobile')
)
st.write('Vous avez sélectionné:', option)

Dans cet exemple, st.selectbox crée une boîte de sélection avec trois options : 'E-mail', 'Téléphone fixe' et 'Téléphone mobile'. L'option sélectionnée est stockée dans la variable option, qui peut ensuite être utilisée ailleurs dans le code.

Paramètres de st.selectbox

st.selectbox prend plusieurs paramètres pour contrôler son comportement :

  • label : une chaîne de caractères qui sera utilisée comme libellé de la boîte de sélection.
  • options : une liste d'options à afficher dans la boîte de sélection. Il peut s'agir de n'importe quelle liste valide en Python ou d'un objet similaire à un tableau.
  • index : l'index de l'option sélectionnée par défaut. Si aucun index n'est fourni, la première option sera sélectionnée par défaut.
  • format_func : une fonction qui prend une option en argument et renvoie une représentation de chaîne de caractères de celle-ci. Cela est utile si vous souhaitez afficher les options d'une manière spécifique.

Que retourne st.selectbox?

st.selectbox retourne l'option actuellement sélectionnée. Cela peut être une chaîne de caractères, un nombre ou tout autre type d'objet, en fonction des options que vous avez fournies. Cette valeur retournée peut ensuite être utilisée dans votre application, par exemple pour filtrer un DataFrame, contrôler une visualisation ou déclencher un calcul.

Travailler avec st.selectbox

Comment utiliser st.selectbox

L'utilisation de st.selectbox est simple. Tout d'abord, vous devez importer la bibliothèque Streamlit. Ensuite, vous pouvez appeler st.selectbox avec les paramètres de libellé et d'options. L'option sélectionnée sera retournée par la fonction.

import streamlit as st
 
## Définir les options
options = ['Option 1', 'Option 2', 'Option 3']
 
## Créer la boîte de sélection
selected_option = st.selectbox('Choisissez une option :', options)
 
## Afficher l'option sélectionnée
st.write('Vous avez sélectionné:', selected_option)

Dans cet exemple, la boîte de sélection affichera les options 'Option 1', 'Option 2' et 'Option 3'.

Exemples d'utilisation de st.selectbox

st.selectbox de Streamlit est un widget polyvalent qui peut être utilisé dans différentes situations. Explorons quelques exemples pour mieux comprendre son utilisation.

Exemple 1 : Filtrage des données

Une utilisation courante de st.selectbox est de permettre aux utilisateurs de filtrer les données. Par exemple, si vous avez un DataFrame contenant des informations sur différents pays, vous pouvez utiliser st.selectbox pour permettre à l'utilisateur de sélectionner un pays et afficher uniquement les données pour ce pays.

import streamlit as st
import pandas as pd
 
## Charger les données
data = pd.read_csv('data.csv')
 
## Obtenir la liste des pays
countries = data['Pays'].unique()
 
## Créer la boîte de sélection
selected_country = st.selectbox('Choisissez un pays :', countries)
 
## Filtrer les données
filtered_data = data[data['Pays'] == selected_country]
 
## Afficher les données filtrées
st.write(filtered_data)

Dans cet exemple, st.selectbox est utilisé pour créer un menu déroulant avec les pays uniques du DataFrame. La sélection de l'utilisateur est ensuite utilisée pour filtrer le DataFrame et afficher uniquement les données du pays sélectionné.

Exemple 2 : Sélection de modèle

Une autre utilisation courante de st.selectbox se retrouve dans les applications d'apprentissage automatique, où il peut être utilisé pour permettre à l'utilisateur de sélectionner un modèle. Par exemple, si vous construisez une application de classification, vous pouvez utiliser st.selectbox pour permettre à l'utilisateur de choisir entre différents classificateurs.

import streamlit as st
from sklearn.ensemble import RandomForestClassifier

Veuillez fournir la traduction en français de ce fichier Markdown. S'il y a des données frontales, assurez-vous de traduire le paramètre de langue en "fr". Voici le fichier :

à partir de sklearn.svm import SVC

## Définir les modèles
modèles = {
    'Random Forest': RandomForestClassifier(),
    'SVM': SVC()
}

## Créer la boîte de sélection
modèle_sélectionné = st.selectbox('Choisissez un modèle:', list(models.keys()))

## Obtenir le modèle sélectionné
modèle = modèles[modèle_sélectionné]

## Utiliser le modèle...

Dans cet exemple, st.selectbox est utilisé pour créer un menu déroulant avec les modèles disponibles. La sélection de l'utilisateur est ensuite utilisée pour récupérer le modèle correspondant du dictionnaire.

Exploration d'autres widgets Streamlit

Bien que st.selectbox soit un widget puissant, Streamlit propose de nombreux autres widgets pouvant être utilisés pour créer des applications interactives. Explorons-en quelques-uns.

st.checkbox

st.checkbox est un autre widget utile de Streamlit. Il crée une case à cocher que l'utilisateur peut cocher ou décocher. Comme st.selectbox, st.checkbox renvoie l'état actuel de la case à cocher, qui peut être utilisé dans votre application.

import streamlit as st
 
## Créer la case à cocher
est_coche = st.checkbox('Cochez-moi')
 
## Afficher l'état de la case à cocher
st.write('La case à cocher est', 'cochée' if est_coche else 'non cochée')

st.slider

st.slider est un widget qui crée un curseur. L'utilisateur peut déplacer le curseur pour sélectionner une valeur dans une plage spécifiée. st.slider renvoie la valeur actuelle du curseur.

import streamlit as st
 
## Créer le curseur
valeur = st.slider('Sélectionnez une valeur', 0, 100, 50)
 
## Afficher la valeur sélectionnée
st.write('Vous avez sélectionné :', valeur)

Ce ne sont que quelques exemples parmi les nombreux widgets disponibles dans Streamlit. En combinant ces widgets, vous pouvez créer des applications hautement interactives et conviviales.

Utilisation avancée et considérations

st.selectbox de Streamlit est un widget puissant, mais il existe quelques utilisations avancées et considérations dont vous devez être conscient pour en tirer le meilleur parti.

Activer/Désactiver la recherche de texte dans st.selectbox

L'une des fonctionnalités de st.selectbox est qu'elle permet aux utilisateurs de rechercher des options en tapant du texte. Cela peut être très utile lorsque la boîte de sélection contient un grand nombre d'options. Cependant, dans certains cas, vous voudrez peut-être désactiver cette fonctionnalité. Pour l'instant, Streamlit ne fournit pas de moyen intégré pour désactiver la recherche de texte dans st.selectbox, mais cela pourrait changer dans les futures versions de la bibliothèque.

Valeur par défaut et index

Par défaut, st.selectbox sélectionne la première option de la liste. Cependant, vous pouvez modifier l'option sélectionnée par défaut en utilisant le paramètre index. Le paramètre index prend un entier qui représente l'index de l'option à sélectionner par défaut.

import streamlit as st
 
# Créer la boîte de sélection avec 'Option 2' sélectionnée par défaut
option_sélectionnée = st.selectbox('Choisissez une option :', ['Option 1', 'Option 2', 'Option 3'], index=1)
 
# Afficher l'option sélectionnée
st.write('Vous avez sélectionné :', option_sélectionnée)

Dans cet exemple, 'Option 2' est sélectionnée par défaut car son index (1) est passé au paramètre index.

Formatage personnalisé avec format_func

st.selectbox vous permet de personnaliser l'affichage des options à l'aide du paramètre format_func. format_func est une fonction qui prend une option en entrée et renvoie une représentation sous forme de chaîne de caractères.

import streamlit as st
 
# Définir une fonction de formatage
def format_func(option):
    return option.upper()
 
# Créer la boîte de sélection avec un formatage personnalisé
option_sélectionnée = st.selectbox('Choisissez une option :', ['Option 1', 'Option 2', 'Option 3'], format_func=format_func)
 
# Afficher l'option sélectionnée
st.write('Vous avez sélectionné :', option_sélectionnée)

Dans cet exemple, les options sont affichées en majuscules grâce au paramètre format_func.

Conclusion

st.selectbox de Streamlit est un widget polyvalent et puissant qui peut grandement améliorer l'interactivité de vos applications Python. Que vous construisiez un outil de visualisation de données, une application d'apprentissage automatique ou tout autre type d'application interactive, st.selectbox peut rendre votre application plus conviviale et intuitive. Alors allez-y, expérimentez avec st.selectbox et voyez comment il peut améliorer vos applications Streamlit !

Avez-vous entendu parler de cet outil fantastique d'analyse de données et de visualisation de données qui transforme votre application Streamlit en Tableau ?

PyGWalker (opens in a new tab) est une bibliothèque Python qui vous aide à intégrer facilement une interface utilisateur similaire à Tableau dans votre propre application Streamlit sans effort.

PyGWalker pour la visualisation de données dans Streamlit (opens in a new tab)

Questions fréquemment posées

  1. Quelle est la valeur par défaut de st.selectbox dans Streamlit ? Par défaut, st.selectbox sélectionne la première option de la liste. Cependant, vous pouvez spécifier une option par défaut différente en utilisant le paramètre index.

  2. Comment puis-je personnaliser l'affichage des options dans st.selectbox ? Vous pouvez personnaliser l'affichage des options dans st.selectbox en utilisant le paramètre format_func. format_func est une fonction qui prend une option en entrée et renvoie une représention de chaîne de caractères.

  3. Puis-je désactiver la fonction de recherche de texte dans st.selectbox ? Pour l'instant, Streamlit ne propose pas de moyen intégré pour désactiver la fonctionnalité de recherche de texte dans st.selectbox. Cependant, cela pourrait changer dans les futures versions de la bibliothèque.