Comment fusionner plusieurs fichiers CSV facilement
Comment fusionner plusieurs fichiers CSV facilement
Meta-description : Besoin de combiner plusieurs fichiers CSV en un seul ? Decouvrez 4 methodes simples pour fusionner vos CSV, du copier-coller au script Python.
Vous avez 12 fichiers CSV d'exports mensuels et vous devez tout regrouper dans un seul fichier pour faire votre analyse annuelle. Ou alors votre equipe commerciale vous envoie chacune un fichier de prospects et vous devez les consolider.
C'est un besoin ultra-courant, et pourtant il n'y a pas de bouton "fusionner" dans Excel. Voici 4 methodes, de la plus simple a la plus puissante.
Avant de fusionner : verifiez la compatibilite
Avant de foncer tete baissee, assurez-vous que vos fichiers sont compatibles :
- Memes colonnes : Les en-tetes doivent etre identiques (ou au moins dans le meme ordre)
- Meme separateur : Tous en virgule, ou tous en point-virgule
- Meme encodage : Tous en UTF-8 de preference
- Memes types de donnees : Les dates au meme format, les nombres avec le meme separateur decimal
Un moyen rapide de verifier : ouvrez chaque fichier dans un viewer CSV en ligne et comparez les structures.
Methode 1 : Copier-coller (pour 2-3 fichiers)
La methode brute mais efficace quand vous n'avez que quelques fichiers.
- Ouvrez le premier CSV dans un editeur de texte
- Ouvrez le deuxieme CSV
- Copiez tout sauf la premiere ligne (l'en-tete) du deuxieme fichier
- Collez a la fin du premier fichier
- Repetez pour chaque fichier supplementaire
- Sauvegardez
Avantage : Zero outil, zero competence technique.
Inconvenient : Fastidieux au-dela de 3 fichiers. Risque d'erreur si les en-tetes different legerement.
Methode 2 : La ligne de commande (Windows, Mac, Linux)
Pour ceux qui ne craignent pas le terminal, c'est la methode la plus rapide.
Sur Mac/Linux :
bash
Garder l'en-tete du premier fichier, puis ajouter les donnees des autres
head -1 fichier1.csv > fusion.csv
tail -n +2 -q fichier*.csv >> fusion.csv
Sur Windows (PowerShell) :
powershell
Get-Content fichier1.csv | Select-Object -First 1 | Out-File fusion.csv
Get-ChildItem fichier*.csv | ForEach-Object {
Get-Content $_ | Select-Object -Skip 1
} | Add-Content fusion.csv
Avantage : Rapide meme avec des centaines de fichiers.
Inconvenient : Pas de verification de coherence entre les fichiers.
Methode 3 : Python avec Pandas (la reference)
Pour un controle total, Python reste imbattable.
python
import pandas as pd
import glob
Lister tous les CSV du dossier
fichiers = glob.glob('exports/*.csv')
Charger et fusionner
dfs = [pd.read_csv(f) for f in fichiers]
resultat = pd.concat(dfs, ignore_index=True)
Supprimer les doublons eventuels
resultat = resultat.drop_duplicates()
Exporter
resultat.tocsv('fusioncomplete.csv', index=False)
print(f"{len(fichiers)} fichiers fusionnes - {len(resultat)} lignes au total")
Ce script gere automatiquement les en-tetes, la concatenation et les doublons. En 10 lignes, c'est regle.
Pour aller plus loin :
python
Ajouter une colonne pour tracer l'origine de chaque ligne
dfs = []
for f in fichiers:
df = pd.read_csv(f)
df['source'] = f # Nom du fichier d'origine
dfs.append(df)
resultat = pd.concat(dfs, ignore_index=True)
Ca permet de savoir de quel fichier vient chaque ligne. Tres utile pour le debug.
Methode 4 : Outils en ligne
Si vous ne voulez pas toucher a du code ni installer quoi que ce soit :
- CSV Viewer Online : Chargez vos fichiers un par un pour verifier leur structure avant de fusionner
- Outils de merge CSV en ligne : Plusieurs sites proposent cette fonctionnalite gratuitement
- Google Sheets : Importez vos CSV dans des onglets differents puis combinez avec
IMPORTRANGE
Fusionner des CSV avec des colonnes differentes
C'est la ou ca se complique. Si vos fichiers n'ont pas exactement les memes colonnes, vous avez deux options :
Option A : Union (garder toutes les colonnes)
Les colonnes manquantes sont remplies avec des valeurs vides.
python
resultat = pd.concat(dfs, ignore_index=True)
Les colonnes absentes d'un fichier auront des NaN
Option B : Intersection (garder les colonnes communes)
On ne garde que les colonnes presentes dans tous les fichiers.
python
colonnes_communes = set.intersection(*[set(df.columns) for df in dfs])
resultat = pd.concat([df[list(colonnescommunes)] for df in dfs], ignoreindex=True)
Les pieges a eviter
1. Les en-tetes en double
Si vous ne faites pas attention, l'en-tete de chaque fichier se retrouve comme une ligne de donnees dans le fichier fusionne. Verifiez toujours le resultat.
2. Les encodages melanges
Un fichier en UTF-8, un autre en Latin-1 : le resultat sera un festival d'accents casses. Harmonisez l'encodage avant de fusionner.
3. Les doublons entre fichiers
Si les memes donnees existent dans plusieurs fichiers (chevauchement de periodes, par exemple), pensez a dedoublonner apres la fusion.
4. L'ordre des colonnes
Deux fichiers avec les memes colonnes mais dans un ordre different vont poser probleme avec les methodes simples (copier-coller, ligne de commande). Python/Pandas gere ca automatiquement grace aux noms de colonnes.
Quelle methode choisir ?
| Situation | Methode recommandee |
|-----------|-------------------|
| 2-3 petits fichiers identiques | Copier-coller |
| Dizaines de fichiers identiques | Ligne de commande |
| Fichiers avec colonnes differentes | Python/Pandas |
| Pas de logiciel, verification rapide | Viewer en ligne |
| Fusion recurrente (chaque mois) | Script Python automatise |
La fusion de CSV, c'est une operation banale mais qui peut vite tourner au cauchemar si on ne verifie pas ses donnees. Prenez 2 minutes pour inspecter vos fichiers avant et apres, et tout ira bien.