Skip to content

Curseur de date et heure dans Streamlit - Introduction pas à pas

Updated on

Dans le domaine de la visualisation de données, la capacité à filtrer et à manipuler des données de manière interactive est cruciale. Un outil populaire dans la communauté Python est le curseur de date et heure dans Streamlit. Cette fonctionnalité puissante permet aux utilisateurs de filtrer les données temporelles de manière interactive, offrant ainsi une expérience utilisateur plus intuitive et engageante. Dans ce guide, nous examinerons en détail le curseur de date et heure dans Streamlit, en vous fournissant les connaissances et les exemples nécessaires pour implémenter efficacement cette fonctionnalité dans vos propres projets.

Streamlit est une bibliothèque open-source en Python qui simplifie le processus de création d'applications web personnalisées pour les projets d'apprentissage automatique et de science des données. Une de ses fonctionnalités phares est le curseur de date et heure, un widget qui permet aux utilisateurs de sélectionner une plage de dates en faisant glisser une poignée le long d'une ligne de temps. Cette fonctionnalité est particulièrement utile lorsqu'il s'agit de données temporelles, car elle permet aux utilisateurs de filtrer et de visualiser facilement les données sur des périodes spécifiques.

Qu'est-ce qu'un curseur de date et heure dans Streamlit ?

Le curseur de date et heure dans Streamlit est un widget qui permet aux utilisateurs de sélectionner une plage de dates en faisant glisser une poignée le long d'une ligne de temps. Cette fonctionnalité est particulièrement utile lorsqu'il s'agit de données temporelles, car elle permet aux utilisateurs de filtrer et de visualiser facilement les données sur des périodes spécifiques. Le curseur de date et heure dans Streamlit est créé en utilisant la fonction slider, qui prend en paramètre une plage de dates et renvoie la plage de dates sélectionnée.

Pour créer un curseur de date et heure dans Streamlit, vous devez utiliser la fonction slider avec les paramètres suivants :

  • label : Une chaîne de caractères qui sert d'étiquette pour le curseur.
  • min_value : La valeur minimale du curseur. Il s'agit d'un objet de type datetime.
  • max_value : La valeur maximale du curseur. Il s'agit également d'un objet de type datetime.
  • value : La valeur initiale du curseur. Il peut s'agir d'un seul objet datetime ou d'un tuple de deux objets datetime représentant une plage.
  • step : L'incrément entre les valeurs du curseur. Il s'agit d'un objet timedelta.

Voici un exemple de création d'un curseur de date et heure dans Streamlit :

import streamlit as st
from datetime import datetime, timedelta
 
# Créer un curseur de date et heure avec une plage d'une semaine
start_date = datetime(2020, 1, 1)
end_date = start_date + timedelta(weeks=1)
 
selected_date = st.slider(
    "Sélectionnez une plage de dates",
    min_value=start_date,
    max_value=end_date,
    value=(start_date, end_date),
    step=timedelta(days=1),
)

Dans cet exemple, le curseur de date et heure permet à l'utilisateur de sélectionner une plage de dates dans la première semaine de 2020. Le paramètre step est défini sur un jour, ce qui signifie que l'utilisateur peut sélectionner une plage de dates avec une précision d'un jour.

Comment utiliser efficacement le curseur de date et heure dans Streamlit ?

Bien que le curseur de date et heure dans Streamlit soit un outil puissant, il est important de l'utiliser efficacement pour garantir une bonne expérience utilisateur. Voici quelques conseils pour utiliser efficacement le curseur de date et heure dans Streamlit :

  1. Choisissez une taille de pas appropriée : La taille du pas détermine la granularité de la plage de dates que les utilisateurs peuvent sélectionner. Si la taille du pas est trop grande, les utilisateurs ne pourront peut-être pas sélectionner la plage de dates exacte souhaitée. D'un autre côté, si la taille du pas est trop petite, le curseur peut devenir trop sensible et difficile à contrôler. Il est donc important de choisir une taille de pas appropriée en fonction de vos données et de votre cas d'utilisation.

  2. Définissez une valeur par défaut raisonnable : La valeur par défaut du curseur détermine la plage de dates initiale qui est sélectionnée lorsque l'utilisateur charge l'application pour la première fois. Il est important de définir une valeur par défaut raisonnable et pertinente par rapport à vos données. Par exemple, si vous visualisez des données de ventes de l'année passée, vous voudrez peut-être définir la valeur par défaut sur le mois le plus récent.

  3. Traitez les données manquantes avec élégance : Si vos données comportent des valeurs manquantes pour certaines dates, il est important de gérer ces valeurs manquantes avec élégance. Une façon de le faire est d'interpoler les valeurs manquantes en fonction des données environnantes. Alternativement, vous pouvez permettre aux utilisateurs de sélectionner uniquement des dates pour lesquelles des données sont disponibles.

  4. Mettez à jour les valeurs du curseur de manière dynamique : Dans certains cas, vous voudrez peut-être mettre à jour les valeurs du curseur de manière dynamique en fonction de l'entrée de l'utilisateur. Par exemple, si vous avez un deuxième curseur qui permet aux utilisateurs de sélectionner une plage horaire, vous voudrez peut-être mettre à jour le curseur de date et heure pour refléter la plage horaire sélectionnée. Cela peut être réalisé en utilisant la fonction st.empty, qui crée un espace réservé pouvant être rempli ultérieurement par un widget.

Voici un exemple de mise à jour du curseur de date et heure de manière dynamique :

import streamlit as st
from datetime import datetime, timedelta
 
# Créer un espace réservé pour le curseur de date et heure
slider_placeholder = st.empty()
 
# Créer un curseur de plage horaire
time_range = st.slider("Sélectionnez une plage horaire", 0, 23, (0, 23))
 
# Mettre à jour le curseur de date et heure en fonction de la plage horaire sélectionnée
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(
    "Sélectionnez une plage de dates",
    min_value=start_date,
    max_value=end_date,
    value=(start_date, end_date),
    step=timedelta(hours=1),
)

Dans cet exemple, le curseur de date et heure est mis à jour chaque fois que l'utilisateur modifie la plage horaire sélectionnée. La fonction slider_placeholder est utilisée pour créer un espace réservé pour le curseur de date et heure, qui est rempli avec le curseur mis à jour lorsque l'utilisateur modifie la plage horaire.

Curseur de date et heure dans Streamlit : Problèmes courants et solutions

Bien que le curseur de date Streamlit soit un outil puissant, il n'est pas sans défauts. Voici quelques problèmes courants auxquels vous pourriez être confrontés lors de l'utilisation du curseur de date Streamlit, ainsi que des solutions pour les résoudre :

  1. Le curseur de date ne fonctionne pas : Si le curseur de date ne réagit pas aux entrées de l'utilisateur, il est probable que le paramètre value ne soit pas défini correctement. Assurez-vous que le paramètre value est un tuple de deux objets datetime représentant la plage de dates initiale.

  2. La valeur par défaut du curseur de date ne fonctionne pas : Si le curseur de date n'affiche pas la valeur par défaut correcte, il est probable que le paramètre value ne soit pas défini correctement. Assurez-vous que le paramètre value est un tuple de deux objets datetime représentant la plage de dates par défaut.

  3. La taille du curseur de date ne fonctionne pas : Si le curseur de date n'est pas affiché à la bonne taille, il est probable que le paramètre format ne soit pas défini correctement. Le paramètre format détermine le format d'affichage des dates sur le curseur. Assurez-vous que le paramètre format est une chaîne de caractères indiquant le format de date souhaité.

  4. Le curseur de date n'affiche pas tous les filtres : Si le curseur de date n'affiche pas tous les filtres disponibles, il est probable que le paramètre options ne soit pas défini correctement. Le paramètre options détermine les filtres disponibles sur le curseur. Assurez-vous que le paramètre options est une liste de chaînes représentant les filtres souhaités.

Voici un exemple de réglage des paramètres format et options :

import streamlit as st
from datetime import datetime, timedelta
 
# Créez un curseur de date avec un format et des options personnalisés
start_date = datetime(2020, 1, 1)
end_date = start_date + timedelta(weeks=1)
 
selected_date = st.slider(
    "Sélectionnez une plage de dates",
    min_value=start_date,
    max_value=end_date,
    value=(start_date, end_date),
    step=timedelta(days=1),
    format="MM/DD/YYYY",
    options=["Jour", "Semaine", "Mois", "Année"],
)

Dans cet exemple, le curseur de date affiche les dates dans le format "MM/JJ/AAAA" et propose des options de filtrage par jour, semaine, mois ou année.

Exploration des fonctionnalités avancées du curseur de date Streamlit

Le curseur de date Streamlit ne se limite pas seulement à la sélection basique de date et d'heure. Il propose également des fonctionnalités avancées qui peuvent améliorer la fonctionnalité de vos applications de visualisation de données. Une de ces fonctionnalités est le curseur à double extrémité, qui permet aux utilisateurs de sélectionner une plage de dates au lieu d'une seule date.

Le curseur à double extrémité peut être créé dans Streamlit en passant un tuple de deux objets datetime en tant que paramètre value dans la fonction slider. Cela créera un curseur avec deux poignées, permettant aux utilisateurs de sélectionner une date de début et une date de fin.

Voici un exemple de création d'un curseur à double extrémité dans Streamlit :

import streamlit as st
from datetime import datetime, timedelta
 
# Créez un curseur de date à double extrémité
start_date = datetime(2020, 1, 1)
end_date = start_date + timedelta(days=30)
 
selected_date_range = st.slider(
    "Sélectionnez une plage de dates",
    min_value=start_date,
    max_value=end_date,
    value=(start_date, start_date + timedelta(days=7)),
    step=timedelta(days=1),
)

Dans cet exemple, le curseur à double extrémité permet à l'utilisateur de sélectionner une plage de dates dans le premier mois de 2020. Le paramètre value est défini sur un tuple de deux objets datetime, représentant la plage de dates initiale.

Curseur de date Streamlit : un outil pour la visualisation interactive des données

En conclusion, le curseur de date Streamlit est un outil puissant pour créer des visualisations interactives de données. Avec son interface facile à utiliser et ses options de personnalisation flexibles, il permet aux utilisateurs d'explorer et de comprendre les données temporelles de manière intuitive et engageante.

Cependant, Streamlit ne convient pas à tous les scénarios de visualisation de données en Python. Il existe une bibliothèque Python open source qui peut vous aider à visualiser rapidement les DataFrames Pandas avec des opérations de glisser-déposer dans une interface visuelle.

PyGWalker est une bibliothèque Python pour l'analyse exploratoire des données avec visualisation. PyGWalker (opens in a new tab) peut simplifier votre flux de travail d'analyse de données et de visualisation de données dans Jupyter Notebook, en transformant votre DataFrame Pandas (et DataFrame Polars) en une interface utilisateur de type Tableau pour l'exploration visuelle.

Pour commencer, il vous suffit de l'installer dans votre carnet Jupyter :

pip install pygwalker

Une fois installé, vous pouvez l'importer dans votre script Python comme n'importe quelle autre bibliothèque :

import pygwalker as pg

N'oubliez pas de donner une étoile à PyGWalker sur GitHub (opens in a new tab) !

PyGWalker pour la visualisation des données (opens in a new tab)

Questions fréquemment posées

  1. Qu'est-ce qu'un curseur de date Streamlit ?

Le curseur de date Streamlit est un widget qui permet aux utilisateurs de sélectionner une plage de dates en faisant glisser une poignée le long d'une ligne de temps. Cette fonctionnalité est particulièrement utile lorsqu'il s'agit de données temporelles, car elle permet aux utilisateurs de filtrer et de visualiser facilement les données sur des périodes spécifiques.

  1. Comment créer un curseur de date dans Streamlit ?

Pour créer un curseur de date dans Streamlit, vous devez utiliser la fonction slider avec les paramètres suivants : label, min_value, max_value, value et step. Les paramètres min_value et max_value déterminent la plage du curseur, tandis que le paramètre value détermine la plage de dates sélectionnée initialement.

  1. Quels sont les paramètres pour créer un curseur de date dans Streamlit ? Les paramètres pour créer un curseur de date et heure dans Streamlit sont label, min_value, max_value, value et step. Le paramètre label est une chaîne de caractères qui sert d'étiquette pour le curseur. Les paramètres min_value et max_value sont des objets datetime qui déterminent la plage du curseur. Le paramètre value est un seul objet datetime ou un tuple de deux objets datetime représentant la plage de dates sélectionnée initialement. Le paramètre step est un objet timedelta qui détermine le pas entre les valeurs du curseur.

Conclusion

En conclusion, le curseur de date et heure de Streamlit est un outil puissant pour créer des visualisations interactives avec des données chronologiques. En comprenant comment l'utiliser efficacement et comment résoudre les problèmes courants, vous pouvez créer des applications de science des données plus attrayantes et conviviales. Que vous soyez un scientifique des données expérimenté ou un débutant qui commence tout juste, nous espérons que ce guide vous a donné une meilleure compréhension du curseur de date et heure de Streamlit et comment l'utiliser dans vos projets.