Logo Lanfrica

steftdg/road-safety-benin

Domaine:

socioeconomic
Créateur:
ste
Hôte:
Une exploration et analyse des données d'accidents routiers au Bénin # 🚗 Road Safety Bénin — Tableau de bord interactif > *Au Bénin, les accidents de la route baissent. Les morts, eux, augmentent.* > *12 ans de données CNSR analysées pour comprendre pourquoi.* ## 📊 Aperçu Dashboard interactif explorant les données d'accidents routiers au Bénin (2010–2022), construit avec **Dash + Plotly**. **Source des données :** Centre National de Sécurité Routière (CNSR) via Open Data Bénin ## 🗂️ Structure ``` road-safety-benin/ │ ├── data/ │ ├── raw/ # Données brutes CNSR (xlsx) │ └── processed/ # Données nettoyées (csv) │ ├── notebooks/ │ └── 01_exploration.ipynb # Nettoyage + analyse exploratoire │ ├── dashboard/ │ └── app.py # Application Dash │ ├── requirements.txt └── README.md ``` ## 🔍 Insights clés - 📈 Les décès ont quasi doublé entre 2019 et 2022 malgré une baisse des accidents - 🗺️ Le département du Zou affiche le taux de mortalité le plus élevé en 2022 (332 tués / 1000 accidents) - 📉 Le taux de mortalité national est passé de 106 à 250 tués pour 1000 accidents entre 2016 et 2022 ## 🚀 Lancer le dashboard ```bash pip install -r requirements.txt python dashboard/app.py ``` Ouvrir ensuite `127.0.0.1` dans le navigateur. ## 🛠️ Stack - Python 3.10+ - Dash 2.17 + Plotly - Pandas ## 🐛 Notes techniques — Problèmes rencontrés au démarrage Le dashboard a nécessité plusieurs corrections avant de fonctionner correctement sur Windows. Ces notes sont documentées ici pour référence. ### 1. Erreur 500 sur `/_dash-layout` — chemins de fichiers **Symptôme :** le navigateur affichait "Erreur de chargement de la mise en page" dès l'ouverture. **Cause :** le chargement des CSV utilisait `os.path.abspath(__file__)` qui se comporte différemment selon le répertoire depuis lequel on lance le script sur Windows. **Fix :** ```python # Avant — fragile sur Windows import os BASE = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) df = pd.read_csv(os.path.join(BASE, "data/processed/fich …