Dans le monde de la data science, présenter des résultats d'analyse de manière claire et interactive est devenu un enjeu majeur. Les tableaux statiques et les présentations PowerPoint ne suffisent plus pour captiver l'attention des équipes et faciliter la prise de décision. C'est là qu'intervient Streamlit, une solution Python révolutionnaire qui permet de créer des dashboards interactifs en quelques lignes de code.
Streamlit s'est imposé comme l'outil de prédilection des data scientists et analystes qui souhaitent transformer rapidement leurs notebooks Jupyter en applications web professionnelles. Sans nécessiter de connaissances en développement web, HTML ou CSS, vous pouvez déployer un dashboard fonctionnel et esthétique en moins d'une heure. Cette démocratisation de la création d'interfaces interactives représente une véritable révolution dans la manière de partager et valoriser les résultats d'analyses, notamment pour ceux qui débutent dans leur premier projet data science avec Python.
Streamlit se distingue par sa simplicité d'utilisation et sa philosophie "code minimal, résultats maximaux". Contrairement à d'autres frameworks qui nécessitent une architecture complexe, Streamlit adopte une approche linéaire où votre code Python s'exécute du haut vers le bas à chaque interaction utilisateur.
Les avantages de cette librairie sont nombreux. La courbe d'apprentissage est exceptionnellement courte : si vous maîtrisez Python et Pandas, vous êtes déjà équipé pour créer votre premier dashboard. L'écosystème Python est pleinement supporté, vous permettant d'intégrer facilement vos bibliothèques favorites comme Plotly, Matplotlib ou Seaborn. Le rechargement automatique lors de modifications du code accélère considérablement le développement, tandis que le déploiement gratuit via Streamlit Cloud simplifie le partage avec vos équipes. Pour approfondir vos compétences en visualisation, consultez notre guide sur comment choisir le bon outil de data visualisation pour votre entreprise.
Avant de créer votre premier dashboard, vous devez préparer votre environnement de développement. L'installation de Streamlit s'effectue simplement via pip, le gestionnaire de paquets Python. Ouvrez votre terminal et exécutez la commande suivante :
pip
install
streamlit
Pour vérifier que l'installation s'est déroulée correctement, testez avec l'application de démonstration :
streamlit
hello
Cette commande lance une application exemple dans votre navigateur, vous permettant de découvrir les différentes fonctionnalités disponibles. Pour démarrer votre propre projet, créez un nouveau fichier Python, par exemple dashboard.py
, dans le dossier de votre choix.
La structure de base d'une application Streamlit est remarquablement simple. Commençons par créer un dashboard affichant des données et des visualisations interactives.
importstreamlitasstimportpandasaspdimportplotly.expressaspx# Configuration de la pagest.set_page_config(page_title="Mon Dashboard",layout="wide")# Titre principalst.title("Dashboard d'analyse de ventes")# Chargement des donnéesdata=pd.read_csv('data.csv')# Affichage des métriques cléscol1,col2,col3=st.columns(3)withcol1:st.metric("Chiffre d'affaires","250K€","+15%")withcol2:st.metric("Nombre de clients","1,234","+8%")withcol3:st.metric("Panier moyen","203€","+3%")# Création d'un graphique interactiffig=px.line(data,x='date',y='ventes',title='Évolution des ventes')st.plotly_chart(fig,use_container_width=True)
Pour lancer votre dashboard, naviguez vers le dossier contenant votre fichier Python dans le terminal et exécutez :
streamlit
run
dashboard.py
Votre navigateur s'ouvrira automatiquement sur localhost:8501
et affichera votre dashboard interactif. Avant de visualiser vos données, assurez-vous de les avoir correctement nettoyées et préparées avec les outils adéquats.
La vraie puissance de Streamlit réside dans sa capacité à créer des interfaces interactives sans effort. Les widgets permettent aux utilisateurs de filtrer, explorer et manipuler les données en temps réel.
Les composants interactifs transforment votre dashboard statique en véritable outil d'exploration :
# Sélecteur de périodeperiode=st.selectbox('Sélectionnez une période',['Semaine','Mois','Trimestre','Année'])# Curseur de plage de datesdate_range=st.date_input('Plage de dates',value=(datetime.date(2024,1,1),datetime.date(2024,12,31)))# Curseur pour valeurs numériquesseui=st.slider('Seuil minimum',0,1000,100)# Filtrage des données selon les sélectionsdata_filtree=data[(data['date']>=date_range)&(data['date']<=date_range[1])&(data['valeur']>=seuil)]
Pour une meilleure ergonomie, utilisez la barre latérale pour regrouper vos filtres :
withst.sidebar:st.header("Filtres")categorie=st.multiselect('Catégories',options=data['categorie'].unique(),default=data['categorie'].unique())afficher_details=st.checkbox('Afficher les détails',value=True)
Pour les projets plus complexes, structurer votre dashboard en plusieurs pages améliore l'expérience utilisateur et la maintenabilité du code. Streamlit offre deux approches pour créer des applications multi-pages.
La méthode moderne consiste à créer un dossier pages
dans le répertoire de votre application principale. Chaque fichier Python dans ce dossier devient automatiquement une page accessible via un menu de navigation. Par exemple, créez la structure suivante :
dashboard.py
(page principale)pages/01_exploration.py
pages/02_analyse.py
pages/03_modelisation.py
Alternativement, vous pouvez gérer la navigation manuellement avec des boutons radio dans la barre latérale, comme dans l'exemple suivant :
page=st.sidebar.radio('Navigation',['Contexte','Exploration','Analyse','Modélisation'])ifpage=='Contexte':st.header('Contexte du projet')st.write('Description de votre projet...')elifpage=='Exploration':st.header('Exploration des données')st.dataframe(data.describe())
Un dashboard efficace doit être rapide et accessible. Pour optimiser les performances, utilisez le décorateur @st.cache_data
pour mettre en cache le chargement de données volumineuses. Si vous travaillez avec des volumes de données particulièrement importants, découvrez comment gérer les grands volumes de données avec PySpark :
@st.cache_datadefcharger_donnees():returnpd.read_csv('grandes_donnees.csv')data=charger_donnees()
Pour le déploiement, Streamlit Cloud offre une solution gratuite et simple. Après avoir poussé votre code sur GitHub, connectez votre compte Streamlit Cloud et sélectionnez votre dépôt. L'application sera automatiquement déployée et accessible via une URL publique que vous pourrez partager avec vos équipes.
Streamlit révolutionne la manière dont les professionnels de la data partagent leurs analyses. En quelques lignes de code Python, vous pouvez transformer vos notebooks en dashboards interactifs professionnels, sans compétences en développement web. Cette accessibilité permet aux data scientists de se concentrer sur l'essentiel : l'analyse et la communication des insights.
Que vous souhaitiez présenter des résultats d'analyse exploratoire, déployer un modèle de machine learning complet avec Scikit-learn ou créer un outil de monitoring en temps réel, Streamlit offre la flexibilité et la simplicité nécessaires. Commencez dès aujourd'hui avec votre premier dashboard et découvrez comment cet outil data peut transformer votre manière de travailler et de collaborer avec vos équipes.