🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script csv_cleaner_pro.py
Version 1.0.0
Date de création 09/03/2026
Auteur / Demandeur Gemini (IA Générée)
Objectif principal Automatiser le nettoyage, la normalisation et l’anonymisation de fichiers CSV volumineux avant injection en base de données.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script prend un fichier CSV brut en entrée, supprime les doublons, gère les valeurs manquantes selon des règles prédéfinies, normalise les formats de date et de téléphone, et exporte un fichier propre prêt pour l’analyse.
📌 Problème résolu
Élimine les erreurs d’importation manuelles et réduit le temps de préparation des données (Data Wrangling) de plusieurs heures à quelques secondes.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.10+
OS cible Windows / Linux / MacOS
Mode d’exécution CLI / Scheduled (Cron/Task Scheduler)
📦 Dépendances / Librairies
# Librairies standard (built-in)
os, logging, argparse, json
# Librairies externes (pip install)
pandas==2.1.0
python-dotenv==1.0.0
📥 ENTRÉES (INPUTS)
# Nom Type Obligatoire Description Exemple
1 input_file str ✅ Oui Chemin vers le CSV source « data/raw_users.csv »
2 threshold float ❌ Non Seuil de tolérance pour valeurs nulles (0.0 à 1.0) 0.5
📂 Fichiers / Sources de données en entrée
Type Chemin / Format Description
CSV ./data/input.csv Données clients brutes
.env ./.env Clés de chiffrement pour l’anonymisation
📤 SORTIES (OUTPUTS)
# Nom Type Description Exemple
1 status bool Succès ou échec de l’opération True
2 stats dict Statistiques du nettoyage (lignes supprimées, etc.) {« rows_cleaned »: 150}
📂 Fichiers / Données en sortie
Type Chemin / Format Description
CSV ./output/cleaned_data.csv Données prêtes à l’emploi
Log ./logs/cleaner.log Historique détaillé des erreurs et actions
🧱 STRUCTURE DU SCRIPT
csv_cleaner_pro.py
📌 IMPORTS (pandas, logging, dotenv)
📌 CONSTANTES / CONFIG (Formats de date, colonnes obligatoires)
📌 FONCTIONS
load_config() → Charge les paramètres .env
clean_dates(df) → Normalise la colonne ‘Date’
anonymize_pii(df) → Chiffre les emails/téléphones
main() → Orchestration
📌 MAIN (Point d’entrée CLI)
🔄 LOGIQUE / ALGORITHME
Lecture du fichier CSV via Pandas.
Validation de la structure (présence des colonnes minimales).
Nettoyage :
Suppression des lignes 100% vides.
Application du threshold sur les valeurs manquantes.
Transformation : Conversion des types de données.
Export : Écriture du fichier final et génération du log de succès.
🚨 GESTION DES ERREURS
Cas d’erreur Type d’exception Comportement attendu
Colonne manquante KeyError Log critique + arrêt du script
Fichier corrompu pd.errors.EmptyDataError Notification email + Skip du fichier
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : Les emails doivent être convertis en minuscules.
Règle 2 : Si une ligne n’a pas d’ID unique, elle est rejetée.
Règle 3 : RGPD : Les colonnes « Nom » et « Prénom » sont hachées en SHA-256.
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu Statut
1 Nominal CSV standard Fichier nettoyé généré ⬜ À tester
2 Colonne manquante CSV sans ID Erreur explicite dans le log ⬜ À tester




Avis
Il n’y a pas encore d’avis.