AccueilBlogTest Python prêt à l'emploi
Tests prêts à l'emploi

Test Python prêt à l'emploi : nettoyer un CSV cassé (45 min, + grille)

En data, savoir « coder en Python » ne veut rien dire : ce qui compte, c'est nettoyer et fiabiliser de la donnée réelle. Ce test le mesure directement. On fournit un CSV volontairement cassé, et on regarde comment le candidat le diagnostique et le corrige — pas seulement s'il « fait tourner » un script.

Data Builder·Juillet 2025·11 min de lecture·Test Python · data · 45 min · grille de correction

Le meilleur signal n'est pas la vitesse, mais l'ordre des gestes : un bon profil regarde les données avant d'agir. Celui qui lance dropna() ou fillna() à l'aveugle se disqualifie tout seul.

1Le brief à donner au candidat

La consigne

« Voici un fichier clients.csv sale. Nettoie-le pour qu'il soit exploitable, et explique tes choix. »

Décrivez au candidat les défauts volontairement introduits dans le fichier (sans lui donner la solution). Il doit les repérer et les traiter proprement.

  • Des valeurs manquantes dans plusieurs colonnes.
  • Des doublons (mêmes clients répétés).
  • Des dates dans des formats incohérents (JJ/MM/AAAA et AAAA-MM-JJ mélangés).
  • Une colonne « montant » stockée en texte avec des symboles (« 1 200 € »).
  • Des espaces superflus et une casse incohérente dans les noms.

2La démarche attendue

La consigne

Avant de corriger, un bon candidat inspecte.

L'ordre des opérations révèle le niveau. On attend d'abord un diagnostic (regarder les données, compter les problèmes), puis un nettoyage justifié, colonne par colonne.

  • Inspecter : head(), info(), isna().sum(), duplicated().sum().
  • Décider au cas par cas : supprimer, imputer ou signaler — pas à l'aveugle.
  • Convertir les types (dates, montant) une fois les valeurs nettoyées.
  • Documenter chaque choix (pourquoi cette décision sur les NA).

3Le corrigé (pandas)

La consigne

Une solution propre et commentée — accepter les variantes équivalentes.

Voici une correction de référence. L'objectif n'est pas une syntaxe identique, mais la présence des bons réflexes : diagnostic, décisions justifiées, conversions de types.

import pandas as pd df = pd.read_csv("clients.csv") # 1) Diagnostic avant toute action print(df.info()) print(df.isna().sum()) print(df.duplicated().sum()) # 2) Doublons : on garde la premiere occurrence df = df.drop_duplicates() # 3) Noms : espaces + casse coherente df["nom"] = df["nom"].str.strip().str.title() # 4) Montant : texte -> nombre (retirer symboles et espaces) df["montant"] = (df["montant"].astype(str) .str.replace("€", "", regex=False) .str.replace(" ", "", regex=False) .str.replace(",", ".", regex=False) .astype(float)) # 5) Dates : parser en gerant les formats mixtes df["date_inscription"] = pd.to_datetime( df["date_inscription"], dayfirst=True, errors="coerce") # 6) Valeurs manquantes : decision explicite, pas de fillna aveugle # (ex : on supprime les lignes sans identifiant, on signale le reste) df = df.dropna(subset=["id"])
  • Chaque étape est justifiée, pas mécanique.
  • Les types finaux sont corrects (datetime, float).
  • Le résultat est reproductible et documenté.

Signal d'alerte : le red flag numéro un : un candidat qui lance df.dropna() ou df.fillna(0) sur tout le DataFrame sans avoir regardé les données. Le bon réflexe est de décider colonne par colonne.

4La grille de correction

La consigne

Notez la démarche autant que le résultat final.

Répartissez les points sur ce que le test veut vraiment mesurer : le diagnostic, la justesse des décisions et la fiabilité du résultat.

  • Diagnostic initial (a regardé les données avant d'agir) — essentiel.
  • Traitement justifié des NA, doublons, dates, montant.
  • Types finaux corrects et résultat reproductible.
  • Capacité à expliquer chaque choix à un non-technique.

5Grille par niveau

NiveauMaîtrise attendueSignal GONO-GO
JuniorNettoie les cas évidentsRepère NA et doublonsLance dropna/fillna à l'aveugle
ConfirméTraite dates et montantDécide au cas par cas, convertit les typesOublie de convertir les types
SeniorDiagnostique avant d'agirJustifie chaque décision, gère les cas limitesNettoie sans expliquer pourquoi
LeadRend le tout reproductibleDocumente et pense à la réutilisationRésultat juste mais non reproductible

Vous recrutez un profil data ?

Data Builder mène l'entretien technique et vous livre un rapport clair et détaillé sous 24h. Premier entretien offert.

Tester gratuitementRéserver un appel