Saison 1 : Les véhicules électriques, de 2017 à 2030

6 épisodes · Vous êtes à l’épisode 2

01

Les sources

Point de départ

02

Nettoyage

1er défi

03

Le monde

Qui roule ?

04

Le Canada

10 provinces

05

L’énergie

Chocs géopo.

06

Prédictions

2030

Progression : 33 %

Épisode 2 sur 6 · Nettoyage

Notre premier défi

80 % du travail d’un analyste, c’est du nettoyage. Je ne le croyais pas avant ce projet.

Dans l’épisode 1, on a téléchargé 86 449 lignes brutes dans 4 fichiers officiels. Données de 1979, carburants hors sujet, colonnes à renommer. On veut 5 568 lignes utiles, toutes documentées.

🧩 La question

Comment transformer 86 000 lignes brutes en 5 568 lignes propres, documentées et prêtes à être reprises par n’importe quel collègue ?

📝 Consignes

Pour chaque source, même enchaînement : vérifier, filtrer, documenter.

  1. Inspecter les données brutes (.info(), .isna(), .unique()).
  2. Filtrer pour ne garder que les lignes pertinentes au projet.
  3. Transformer (dates, renommage des colonnes).
  4. Vérifier le résultat (doublons, valeurs manquantes, cohérence).
  5. Documenter chaque fichier nettoyé avec un dictionnaire de données.

🔍 Analyse

Je prends la Source 1 (Prix de l’essence) comme exemple. Les autres sources suivent la même logique.

Étape 1 · Inspecter les données brutes

On commence par regarder ce qu’on a : combien de lignes, combien de valeurs manquantes, quelles valeurs uniques dans les colonnes sensibles.

df_gaz_brut.info()
print()
print("Valeurs manquantes :")
print(df_gaz_brut.isna().sum())

Observation : la colonne Type de carburant contient plusieurs catégories (essence ordinaire, super, diesel…). Nous ne voulons que l’essence ordinaire libre-service.

Étape 2 · Appliquer les filtres

On enchaîne trois filtres : un sur le carburant, un sur la date, un sur la période 2017-2024.

df_gaz = df_gaz_brut.copy()

# 1. Filtrer : essence ordinaire libre-service seulement
filtre_carburant = df_gaz["Type de carburant"].str.contains("ordinaire", case=False) & \
                   df_gaz["Type de carburant"].str.contains("libre-service", case=False)
df_gaz = df_gaz[filtre_carburant].copy()
print(f"Après filtre carburant : {df_gaz.shape[0]} lignes")

# 2. Convertir la période en datetime
df_gaz["date"] = pd.to_datetime(df_gaz[col_periode], format="%Y-%m")

# 3. Filtrer la période 2017-2024
df_gaz = df_gaz[(df_gaz["date"] >= "2017-01-01") &
                (df_gaz["date"] <= "2024-12-31")].copy()
print(f"Après filtre période : {df_gaz.shape[0]} lignes")

Étape 3 · Vérifier le résultat

Après le nettoyage, on vérifie systématiquement la période, le nombre de géographies, les doublons et les valeurs manquantes :

print("~~~~~ Vérification ~~~~~")
print(f"Période : {df_gaz['date'].min()} à {df_gaz['date'].max()}")
print(f"Nb géographies : {df_gaz['geo'].nunique()}")
print(f"Doublons : {df_gaz.duplicated().sum()}")
print(f"\nValeurs manquantes :\n{df_gaz.isna().sum()}")

Résultat :

~~~~~ Vérification ~~~~~
Période : 2017-01-01 à 2024-12-01
Nb géographies : 19
Doublons : 0
Valeurs manquantes : 0

Avant / Après le nettoyage

Avant / après nettoyage : 86 449 lignes brutes vers 5 568 lignes utiles
Avant / après : 86 449 → 5 568 lignes utiles (−94 %)

De 86 449 à 5 568 lignes, soit une réduction de 94 %

Source Brut Nettoyé Réduction
Essence Canada 45 772 1 824 −96 %
VE Canada 14 112 672 −95 %
WTI (quotidien → mensuel) 10 129 96 −95 %
VE Monde 16 436 2 976 −82 %
Total 86 449 5 568 −94 %

📖 Documenter : le dictionnaire de données

Dernière étape : construire un dictionnaire de données. Pour chaque fichier nettoyé, on documente ce que signifie chaque colonne, son type, son unité et sa source.

Exemple pour le fichier immatriculations_ve_canada_2017_2024.csv :

annee

Année d’observation (2017 à 2024)

Type : int · Source : Stat. Canada, 23-10-0308

province

Province, territoire ou total Canada

Type : str · Source : Stat. Canada, 23-10-0308

type_carburant

BEV, PHEV, Essence, Diesel, Hybride ou Total

Type : str · Source : Stat. Canada, 23-10-0308

nb_vehicules

Nombre d’immatriculations annuelles

Type : int · Source : Stat. Canada, 23-10-0308

✅ Conclusion

4 sources brutes → 5 568 lignes propres, sans doublons, toutes documentées. N’importe quel collègue peut reprendre le projet.

🎬 Prochain épisode

Épisode 3 · Le monde en 8 ans : qui roule à l’électrique ?

Top 14 des pays qui mènent la transition. Où se place le Canada ?

Laisser un commentaire

En savoir plus sur Branchés sur les données

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Poursuivre la lecture