Skip to content

Ludovic-M-DAN/streamlit_data_toolkit

Repository files navigation

Logo Data Toolkit

Python Streamlit GitHub License

Data Toolkit est une application interactive Streamlit qui simplifie l'exploration, l'analyse et le traitement de fichiers CSV ou Excel. Elle s'adresse aux data scientists, analystes ou toute personne souhaitant explorer ses données via une interface intuitive, sans avoir a charger un notebook et le laisser à l'abandon avec les autres (😉).

🌱 La genése

À l'origine, je souhaitais simplement disposer d'un outil rapide pour visualiser le contenu d'un dataset. Par la suite, ayant eu besoin d'échantillonner un fichier CSV volumineux (> 3 Go), j'ai intégré cette fonctionnalité au premier outil. Et pourquoi s'arrêter en si bon chemin ? J'ai donc ajouté des analyses exploratoires basiques, ainsi que des analyses un peu plus poussées permettant de visualiser clairement les données. Ainsi est née la V1.

⚙️ Fonctionnalités

Basiques

  • Chargement : Import de fichiers CSV/Excel (jusqu’à 5 Go) avec séparateur personnalisé.
  • Prévisualisation : Aperçu des 5 premières lignes avant chargement complet.
  • EDA simple : Dimensions, types de colonnes, valeurs manquantes, taille en mémoire.

Avancées

  • EDA+ : Statistiques descriptives, visualisations (histogrammes, corrélations, boîtes à moustaches, valeurs manquantes).
  • Personnalisation : Choix des colonnes et des analyses.
  • Logs : Gestion des erreurs dans app.log.
  • Traitement : Échantillonnage (aléatoire, premières/dernières N lignes) avec export.

📂 Structure du Repository

streamlit_data_toolkit/
├── data/                   # Datasets d’exemple
├── docs/                   # Documentation détaillée (guides, API, etc.)
├── src/                    # Code source
│   ├── config.py           # Paramètres de configuration
│   ├── data_loader.py      # Fonctions de chargement et d'échantillonnage
│   ├── eda.py              # Fonctions d'analyse exploratoire (EDA)
│   ├── eda_advanced.py     # Visualisations avancées (histogrammes, heatmaps, etc.)
│   ├── treatments.py       # Fonctions de traitement (renommage, remplissage, etc.)
│   ├── ui_upload.py        # Gestion de l'upload et détection d'encodage
│   ├── ui_utils.py         # Fonctions UI utilitaires (choix du dossier, nom par défaut)
│   ├── version.py          # Informations de version et nouveautés
├── CHANGELOG.md            # Historique des modifications et nouveautés
├── app.py                  # Application principale (Streamlit)
├── README.md               # Présentation du projet
├── requirements.txt        # Dépendances
└── logo.png                # Logo de l'application

🛠️ Installation

  1. Cloner le repo :

    git clone https://github.com/Ludovic-M-DAN/streamlit_data_toolkit.git
    cd streamlit_data_toolkit
  2. Créer un environnement virtuel (optionnel) :

    python -m venv venv
    source venv/bin/activate  # Sous Windows : venv\Scripts\activate
  3. Installer les dépendances :

    pip install -r requirements.txt
  4. Lancer l’app en augmentant la limite de fichier a 5Go :

    streamlit run app.py --server.maxUploadSize=5000

Ouvrez http://localhost:8501 dans votre navigateur.

:accessibility: Astuce rapide pour ne pas se compliquer la vie

Pour lancer l’application rapidement, créez un fichier batch run_app.bat à la racine du projet avec le contenu suivant :

@echo off

:: Créer un environnement virtuel
python -m venv venv

:: Activer l'environnement virtuel
call venv\Scripts\activate

:: Installer les dépendances
pip install -r requirements.txt

:: Lancer l'application Streamlit avec une limite de fichier de 5 Go
start "" http://localhost:8501
streamlit run app.py --server.maxUploadSize=5000

:: Mettre en pause pour voir les éventuelles erreurs
pause

📦 Dépendances principales

Python Pandas Matplotlib Seaborn Streamlit

Le projet repose sur les bibliothèques suivantes :

  • Python (>= 3.7)
  • Streamlit (1.43.1) – Interface interactive
  • Pandas (2.2.3) – Manipulation des données
  • Matplotlib (3.10.1) – Visualisation basique
  • Seaborn (0.13.2) – Visualisation avancée
  • NumPy (2.2.3) – Calcul scientifique
  • OpenPyXL (3.1.5) – Gestion des fichiers Excel
  • PyArrow (19.0.1) – Support des formats optimisés

Pour voir toutes les dépendances, consultez le fichier requirements.txt.

📖 Documentation

🚧 En cours de construction 🚧

🎥 Vidéo

🎬 Vidéo
📽️ Regarder la démo

🤝 Contribuer

  1. Fork le repo.
  2. Créez une branche (git checkout -b feature/ton-apport).
  3. Committez vos changements (git commit -m "Ajout de X").
  4. Poussez (git push origin feature/ton-apport).
  5. Ouvrez une Pull Request.

📜 Licence

MIT License – voir LICENSE.

📬 Contact

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages