Quelqu'un t'envoie un export CSV. Tu l'ouvres et tu découvres une seule colonne géante de texte, des noms remplis de é à la place des accents, des numéros de téléphone amputés de leur zéro initial, et le même client qui apparaît quatre fois avec trois formats de date différents. Bienvenue dans la data du monde réel.
Le CSV n'est pas vraiment un standard — la RFC 4180 existe, mais presque rien ne l'impose. Chaque outil exporte son propre dialecte, et Excel « aide » activement en réécrivant tes valeurs. Ce guide recense les horreurs classiques et te donne un workflow reproductible pour nettoyer n'importe quel CSV en vrac en quelques minutes.
Pourquoi les fichiers CSV sont-ils si sales ?
Horreur n°1 : le chaos des délimiteurs (la surprise du point-virgule)
CSV signifie « comma-separated values » — sauf quand ce n'est pas le cas. Excel en français (et dans la plupart des locales européennes) exporte avec des points-virgules, parce que ces locales utilisent la virgule comme séparateur décimal (3,14). Un « CSV » sorti d'un Excel français ressemble donc à ça :
id;nom;prix
1;Café des Amis;12,50
2;Boulangerie Marcel;8,90
Donne ça à un parseur qui attend des virgules et tu obtiens une colonne unique par ligne — ou pire, les virgules décimales sont prises pour des délimiteurs et chaque prix se coupe en deux. Des fichiers séparés par tabulations ou par pipes voyagent aussi sous l'extension .csv. Règle numéro un : ne jamais supposer le délimiteur ; regarder le fichier d'abord.
Horreur n°2 : le mojibake d'encodage (é → é)
Si tu vois Café au lieu de Café, tu regardes des octets UTF-8 décodés en Latin-1 (ou Windows-1252). Le caractère é occupe deux octets en UTF-8 (0xC3 0xA9) ; lis-les un par caractère en Latin-1 et tu obtiens é. L'erreur inverse produit caf� avec des caractères de remplacement.
Ce qui a été écrit (UTF-8) : Café, São Paulo, Müller
Ce que tu vois (en Latin-1) : Café, São Paulo, Müller
Un gremlin apparenté : le BOM (byte order mark), trois octets invisibles (EF BB BF) qu'Excel place au début des fichiers UTF-8. Les parseurs qui ne le retirent pas nomment ta première colonne id au lieu de id — et d'un coup ton import ne mappe plus aucune colonne.
Horreur n°3 : Excel mange tes données
Excel ne se contente pas d'afficher les CSV — il les réinterprète, de façon destructive :
- Les zéros initiaux disparaissent. Le numéro
0612345678devient612345678. Le code postal01234devient1234. Une fois sauvegardé, les zéros sont perdus pour toujours. - Tout devient date. Les gènes SEPT2 et MARCH1 étaient si obstinément interprétés comme des dates qu'en 2020, la communauté génétique a carrément renommé les gènes (désormais SEPTIN2, MARCHF1) plutôt que de continuer à se battre contre Excel. Ta référence produit
1-2devient02-janv. - Les identifiants longs passent en notation scientifique. Un ID à 16 chiffres comme
8712000012345678s'affiche8,712E+15, et Excel remplace silencieusement par des zéros tous les chiffres au-delà du 15ᵉ. Numéros de carte, codes-barres EAN, numéros de suivi : tous victimes.
Si une colonne doit rester du texte, elle doit être typée texte avant qu'Excel n'y touche — une fois le fichier ouvert, le mal est fait.
Horreur n°4 : guillemets, virgules et sauts de ligne imbriqués
Une ligne CSV parfaitement valide peut contenir des virgules et même des retours à la ligne à l'intérieur de champs entre guillemets :
id,nom,notes
1,"Dupont, Jean","Appelé lundi.
Veut être rappelé."
C'est un seul enregistrement réparti sur deux lignes physiques. Tout script qui fait naïvement un split(",") par ligne va le déchiqueter. Ajoute des guillemets non échappés dans les champs, et le parsing peut dérailler pour toutes les lignes suivantes.
Horreur n°5 : doublons, roulette des dates et caractères invisibles
- Les lignes dupliquées issues de doubles exports, d'appels API rejoués ou de fusions copier-coller gonflent silencieusement les comptages et corrompent les agrégats.
- Les dates incohérentes :
03/04/2026est le 3 avril à Paris et le 4 mars à Chicago. Un mélangeDD/MMetMM/DDdans la même colonne est irréparable, sauf quand certaines valeurs (jour > 12) trahissent le format. - Espaces de fin et caractères invisibles :
"Paris "≠"Paris", et les espaces insécables (U+00A0), espaces de largeur nulle ou tabulations égarées sont invisibles à l'œil mais fatals aux jointures et aux GROUP BY.
Le workflow de nettoyage, étape par étape
Répare dans le bon ordre — l'encodage avant les délimiteurs, la structure avant le contenu — sinon tu referas le travail.
Étape 1 : profiler avant de toucher à quoi que ce soit
Ne nettoie jamais à l'aveugle. Passe d'abord le fichier dans un CSV Analyzer et réponds à : combien de lignes et de colonnes ? Quel délimiteur ? Quelles colonnes ont des valeurs vides, des types mélangés, des valeurs aberrantes ? Deux minutes de profilage révèlent régulièrement qu'« un fichier en vrac » est en fait trois problèmes précis et réparables.
Étape 2 : corriger l'encodage
Convertis tout en UTF-8 sans BOM — le standard de fait accepté par tous les outils modernes. Si tu vois des motifs de mojibake (é, è, ’), le fichier doit être re-décodé, pas corrigé au rechercher-remplacer : soigner les symptômes caractère par caractère rate ceux que tu n'as pas repérés.
Étape 3 : normaliser le délimiteur et la structure
Standardise sur la virgule avec un quoting correct (ou convertis carrément vers un format plus sain — une conversion CSV to JSON rend la structure explicite et met fin à l'ambiguïté des délimiteurs pour le code en aval). Vérifie que chaque ligne a le même nombre de colonnes ; celles qui dérogent sont généralement des victimes de guillemets mal échappés.
Étape 4 : nettoyer les valeurs
C'est là qu'un Data Cleaner fait le gros du travail en une passe : suppression des espaces de début/fin, réduction des doubles espaces, retrait des caractères invisibles, normalisation de la casse, standardisation des valeurs vides (NULL, N/A, -, "" → une seule convention). Puis normalise les dates en ISO 8601 (2026-07-10) — le seul format qui se trie correctement en tant que texte et reste sans ambiguïté partout.
Étape 5 : dédupliquer — avec précaution
Les doublons exacts sont le cas facile : trier, puis supprimer les lignes identiques. Sur des données en lignes, Sort Lines suivi de Remove Duplicate Lines règle ça en quelques secondes. Le cas subtil, ce sont les quasi-doublons — même client, une ligne avec un espace de fin ou une casse différente — et c'est exactement pour ça que la déduplication vient après le nettoyage des valeurs, pas avant.
Étape 6 : valider le résultat
Re-profile le fichier nettoyé et vérifie que les chiffres ont du sens : le nombre de lignes a baissé de la quantité attendue, aucune colonne ne s'est vidée bizarrement, les plages de dates sont plausibles, les identifiants ont gardé leur longueur. Un nettoyage non validé, c'est juste de l'édition.
Avant / après
# Avant
ID;Nom ;date inscription;Téléphone
1;Café élite ;03/04/26;0612345678
1;Café élite;3/4/2026;612345678
2;Müller GmbH;2026-04-03;+49301234567
# Après
id,nom,date_inscription,telephone
1,Café élite,2026-04-03,0612345678
2,Müller GmbH,2026-04-03,+49301234567
Mêmes données, un tiers de lignes en moins, zéro ambiguïté — et le fichier s'importera à l'identique partout.
Aide-mémoire : symptôme → correctif
| Symptôme | Cause probable | Correctif |
|---|---|---|
| Tout dans une seule colonne | Délimiteur point-virgule/tabulation | Détecter le délimiteur, re-parser |
é, ’, ü dans le texte | UTF-8 lu en Latin-1 | Re-décoder en UTF-8 |
Premier en-tête id | BOM | Retirer le BOM, sauver en UTF-8 sans BOM |
| Codes postaux sans zéro initial | Excel a typé la colonne en nombre | Réexporter, forcer le type texte |
8,7E+15 dans une colonne d'ID | Notation scientifique Excel | Réexporter en texte (chiffres >15 perdus) |
| Lignes coupées/fusionnées au hasard | Virgules ou sauts de ligne non quotés | Vrai parseur CSV, corriger le quoting |
| Comptages supérieurs à la réalité | Lignes dupliquées | Nettoyer les valeurs, puis dédupliquer |
| Jointures qui échouent mystérieusement | Espaces de fin / caractères invisibles | Trim + retrait des caractères invisibles |
Nettoie ton CSV maintenant
Les CSV en vrac ne sont pas de la malchance — c'est le résultat prévisible des différences de locale, des encodages incompatibles et de l'enthousiasme d'Excel. Avec un workflow qui profile d'abord et le bon ordre d'opérations, même un fichier catastrophe redevient de la donnée propre et importable en quelques minutes.
Colle tes données dans le Data Cleaner gratuit — trim, déduplication, normalisation de casse et de format en une passe, entièrement dans ton navigateur : tes données ne quittent jamais ta machine. Aucun compte requis.