# Rapport de Nettoyage et de Préparation des Données

**Date de génération :** 2026-08-30T02:00:22.536577+00:00  
**Périmètre :** Phase Industrielle 8 — Nettoyer et Préparer  
**Source des données brutes :** `data/raw/` (conservées intactes à 100%)  
**Destinations :** `data/interim/` et `data/processed/`  

---

## 1. Synthèse Exécutive du Nettoyage

Le processus de nettoyage et de préparation des données a été exécuté en conformité avec les conclusions du rapport de contrôle qualité de la Phase 7. Toutes les opérations ont été appliquées de façon **traçable, reproductible et documentée**.

### Objectifs Atteints
- **Intégrité de la source :** 0 modification sur les données brutes dans `data/raw/`.
- **Contrôle des doublons :** Vérification d'absence de doublons de lignes et d'identifiants.
- **Correction des types & formats :** Normalisation des codes départements (chaînes à 2 chiffres) et typage strict des identifiants.
- **Harmonisation des modalités :** Standardisation des textes et alignement des tranches d'IPS.
- **Cohérence des formules métier :** Plafonnement des classes bénéficiaires, recalcul déterministe des ratios de dotation et des moyennes de maîtrise.
- **Analyse de la complétude :** Confirmation d'un taux de complétude de **100%** (0 valeur manquante). Aucune imputation complexe requise.
- **Dataset analytique unique :** Création du fichier consolidé `data/processed/dataset_panoramique.csv` (250 écoles, 18 variables).

---

## 2. Tableau Comparatif Avant / Après Nettoyage

| Fichier / Table | Lignes (Raw) | Lignes (Interim) | Doublons (Raw -> Interim) | Manquants (Raw -> Interim) | Format Département (Raw -> Interim) |
|---|---|---|---|---|---|
| `effectifs_classes_ecoles_simulees.csv` | 250x5 | 250x5 | 0 -> 0 | 0 -> 0 | `int64` -> `str` |
| `evaluations_cm1_simulees.csv` | 250x8 | 250x8 | 0 -> 0 | 0 -> 0 | `int64` -> `str` |
| `evaluations_cm2_simulees.csv` | 250x8 | 250x8 | 0 -> 0 | 0 -> 0 | `int64` -> `str` |
| `ips_ecoles_simulees.csv` | 250x5 | 250x5 | 0 -> 0 | 0 -> 0 | `int64` -> `str` |
| `referentiel_etablissements_simule.csv` | 250x7 | 250x7 | 0 -> 0 | 0 -> 0 | `int64` -> `str` |
| `socle_numerique_ecoles_simule.csv` | 250x11 | 250x11 | 0 -> 0 | 0 -> 0 | `int64` -> `str` |

---

## 3. Détail des Traitements Effectués (8 Étapes de Préparation)

### 1. Traitement des Doublons
L'audit confirme qu'aucune ligne dupliquée n'est présente dans les fichiers bruts. Un filtre systématique `drop_duplicates()` a été intégré dans le pipeline pour garantir cette propriété.

### 2. Correction des Types et Formats
- Les codes de département ont été convertis d'entiers (`int64`) vers des chaînes de caractères formatées à deux chiffres (`'01'`, `'06'`, `'75'`).
- Les identifiants `school_id` sont garantis sous le type chaîne de caractères (`str`).

### 3. Harmonisation des Modalités
- Standardisation des chaînes de caractères en minuscules/majuscules nettoyées.
- Alignement de la variable `niveau_social` sur les tranches officielles de l'IPS Éducation Nationale (`favorisé` si IPS > 100, `moyen` entre 90 et 100, `défavorisé` si < 90).

### 4. Traitement des Valeurs Impossibles & Recalcul de Formules
- Plafonnement strict : `nb_classes_beneficiaires <= nb_classes_total`.
- Recalcul déterministe : `taux_classes_equipees = nb_classes_beneficiaires / nb_classes_total`.
- Repositionnement de `ecole_beneficiaire = 1` si et seulement si `nb_classes_beneficiaires > 0`.
- Harmonisation : `taux_maitrise_global = (taux_maitrise_francais + taux_maitrise_mathematiques) / 2`.

### 5. Analyse des Valeurs Manquantes
L'analyse révèle que **tous les jeux de données bruts sont exhaustifs** (0 valeur manquante sur les 250 écoles).

### 6. Méthode d'Imputation
En l'absence de valeurs manquantes, **aucune méthode d'imputation** (moyenne, médiane, k-NN) n'a été appliquée, évitant l'introduction de bruit ou de biais artificiel.

### 7. Documentation des Exclusions
Aucun établissement n'a été exclu de l'échantillon d'analyse. L'intégralité des **250 écoles** est conservée dans le jeu de données final.

### 8. Consolidation et Fichier Final Processed
Les tables nettoyées ont été fussionnées par jointure à gauche sur la clé `school_id` pour produire le fichier `data/processed/dataset_panoramique.csv`.

**Caractéristiques du dataset final consolidé :**
- **Volume :** 250 écoles (100% de l'échantillon).
- **Variables :** 21 colonnes structurées.
- **Nouvel indicateur dérivé :** `progression_cm1_cm2 = cm2_taux_global - cm1_taux_global`.

---

## 4. Journal d'Audit des Transformations (Traçabilité)

L'ensemble des transformations est consigné dans le fichier JSON d'audit : `outputs/reports/audit_log.json`.

| Horodatage | Étape | Cible | Description de la Transformation | Justification |
|---|---|---|---|---|
| `2026-08-30T02:00:22` | `3_correction_types` | `effectifs_classes_ecoles_simulees.csv` | Formatage du code département en chaîne de caractères sur 2 chiffres avec zéro initial (ex. '01'). | Standardisation géographique et préservation des codes administratifs INSEE. |
| `2026-08-30T02:00:22` | `5_6_analyse_imputation` | `effectifs_classes_ecoles_simulees.csv` | Analyse des valeurs manquantes : 0 valeur manquante détectée. | Aucune imputation requise, le jeu de données est complet à 100%. |
| `2026-08-30T02:00:22` | `sauvegarde_interim` | `effectifs_classes_ecoles_simulees.csv` | Sauvegarde du fichier nettoyé intermédiaire dans data/interim/effectifs_classes_ecoles_simulees.csv. | Conserver un état propre par table avant la consolidation et la fusion analytique. |
| `2026-08-30T02:00:22` | `3_correction_types` | `evaluations_cm1_simulees.csv` | Formatage du code département en chaîne de caractères sur 2 chiffres avec zéro initial (ex. '01'). | Standardisation géographique et préservation des codes administratifs INSEE. |
| `2026-08-30T02:00:22` | `4_harmonisation_formule` | `evaluations_cm1_simulees.csv` | Harmonisation de taux_maitrise_global = (taux_maitrise_francais + taux_maitrise_mathematiques) / 2 sur 46 lignes. | Élimination des légers écarts d'arrondi entre la moyenne et le taux synthétique. |
| `2026-08-30T02:00:22` | `5_6_analyse_imputation` | `evaluations_cm1_simulees.csv` | Analyse des valeurs manquantes : 0 valeur manquante détectée. | Aucune imputation requise, le jeu de données est complet à 100%. |
| `2026-08-30T02:00:22` | `sauvegarde_interim` | `evaluations_cm1_simulees.csv` | Sauvegarde du fichier nettoyé intermédiaire dans data/interim/evaluations_cm1_simulees.csv. | Conserver un état propre par table avant la consolidation et la fusion analytique. |
| `2026-08-30T02:00:22` | `3_correction_types` | `evaluations_cm2_simulees.csv` | Formatage du code département en chaîne de caractères sur 2 chiffres avec zéro initial (ex. '01'). | Standardisation géographique et préservation des codes administratifs INSEE. |
| `2026-08-30T02:00:22` | `4_harmonisation_formule` | `evaluations_cm2_simulees.csv` | Harmonisation de taux_maitrise_global = (taux_maitrise_francais + taux_maitrise_mathematiques) / 2 sur 49 lignes. | Élimination des légers écarts d'arrondi entre la moyenne et le taux synthétique. |
| `2026-08-30T02:00:22` | `5_6_analyse_imputation` | `evaluations_cm2_simulees.csv` | Analyse des valeurs manquantes : 0 valeur manquante détectée. | Aucune imputation requise, le jeu de données est complet à 100%. |
| `2026-08-30T02:00:22` | `sauvegarde_interim` | `evaluations_cm2_simulees.csv` | Sauvegarde du fichier nettoyé intermédiaire dans data/interim/evaluations_cm2_simulees.csv. | Conserver un état propre par table avant la consolidation et la fusion analytique. |
| `2026-08-30T02:00:22` | `3_correction_types` | `ips_ecoles_simulees.csv` | Formatage du code département en chaîne de caractères sur 2 chiffres avec zéro initial (ex. '01'). | Standardisation géographique et préservation des codes administratifs INSEE. |
| `2026-08-30T02:00:22` | `5_6_analyse_imputation` | `ips_ecoles_simulees.csv` | Analyse des valeurs manquantes : 0 valeur manquante détectée. | Aucune imputation requise, le jeu de données est complet à 100%. |
| `2026-08-30T02:00:22` | `sauvegarde_interim` | `ips_ecoles_simulees.csv` | Sauvegarde du fichier nettoyé intermédiaire dans data/interim/ips_ecoles_simulees.csv. | Conserver un état propre par table avant la consolidation et la fusion analytique. |
| `2026-08-30T02:00:22` | `3_correction_types` | `referentiel_etablissements_simule.csv` | Formatage du code département en chaîne de caractères sur 2 chiffres avec zéro initial (ex. '01'). | Standardisation géographique et préservation des codes administratifs INSEE. |
| `2026-08-30T02:00:22` | `5_6_analyse_imputation` | `referentiel_etablissements_simule.csv` | Analyse des valeurs manquantes : 0 valeur manquante détectée. | Aucune imputation requise, le jeu de données est complet à 100%. |
| `2026-08-30T02:00:22` | `sauvegarde_interim` | `referentiel_etablissements_simule.csv` | Sauvegarde du fichier nettoyé intermédiaire dans data/interim/referentiel_etablissements_simule.csv. | Conserver un état propre par table avant la consolidation et la fusion analytique. |
| `2026-08-30T02:00:22` | `3_correction_types` | `socle_numerique_ecoles_simule.csv` | Formatage du code département en chaîne de caractères sur 2 chiffres avec zéro initial (ex. '01'). | Standardisation géographique et préservation des codes administratifs INSEE. |
| `2026-08-30T02:00:22` | `5_6_analyse_imputation` | `socle_numerique_ecoles_simule.csv` | Analyse des valeurs manquantes : 0 valeur manquante détectée. | Aucune imputation requise, le jeu de données est complet à 100%. |
| `2026-08-30T02:00:22` | `sauvegarde_interim` | `socle_numerique_ecoles_simule.csv` | Sauvegarde du fichier nettoyé intermédiaire dans data/interim/socle_numerique_ecoles_simule.csv. | Conserver un état propre par table avant la consolidation et la fusion analytique. |
| `2026-08-30T02:00:22` | `sauvegarde_processed` | `dataset_panoramique.csv` | Création et sauvegarde du dataset consolidé final (250 lignes, 21 colonnes) dans data/processed/. | Mettre à disposition la table analytique unique et contrôlée pour les étapes d'analyse descriptive et de modélisation causale. |
