OUJOOD.COM
Exporter un DataFrame en CSV : la syntaxe de base
La méthode to_csv() s'appelle directement sur un DataFrame. Vous lui passez le chemin du fichier de destination, et Pandas écrit toutes les données.
import pandas as pd
data = {
"produit": ["Clavier", "Souris", "Écran"],
"prix": [45.90, 22.50, 189.00],
"stock": [120, 85, 34]
}
df = pd.DataFrame(data)
# Export basique — crée ou écrase le fichier
df.to_csv("export.csv")
print("Fichier écrit.")
Par défaut, Pandas inclut l'index dans le fichier. Si votre index est le numéro de ligne automatique (0, 1, 2...), il sera écrit dans une colonne sans nom en première position — ce qui produit souvent un CSV difficile à réimporter proprement. C'est le premier réglage à faire.
Supprimer l'index et choisir le séparateur
Deux paramètres que vous utiliserez dans presque tous vos exports : index=False pour ne pas écrire l'index numérique, et sep pour choisir le séparateur selon le contexte (virgule pour l'international, point-virgule pour les outils français).
import pandas as pd
data = {
"produit": ["Clavier", "Souris", "Écran"],
"prix": [45.90, 22.50, 189.00],
"stock": [120, 85, 34]
}
df = pd.DataFrame(data)
# Sans index, avec point-virgule (compatible Excel français)
df.to_csv("export_fr.csv", index=False, sep=";")
# Sans index, encodage UTF-8 avec BOM (pour Excel qui ouvre correctement les accents)
df.to_csv("export_excel.csv", index=False, sep=";", encoding="utf-8-sig")
L'encodage utf-8-sig mérite une attention particulière. C'est un UTF-8 avec marqueur BOM (Byte Order Mark) au début du fichier. Excel détecte ce marqueur et ouvre automatiquement le fichier avec le bon encodage — sans ça, les accents s'affichent souvent en caractères illisibles quand on double-clique sur le CSV depuis l'explorateur Windows.
Choisir les colonnes à exporter
Vous n'avez pas toujours besoin d'exporter toutes les colonnes d'un DataFrame. Le paramètre columns vous laisse choisir lesquelles inclure et dans quel ordre, sans modifier le DataFrame source.
import pandas as pd
data = {
"nom": ["Alice", "Bob", "Clara"],
"email": ["alice@ex.com", "bob@ex.com", "clara@ex.com"],
"score": [88, 74, 95],
"mot_de_passe": ["hash1", "hash2", "hash3"] # colonne à ne pas exporter
}
df = pd.DataFrame(data)
# Export sans la colonne sensible, dans l'ordre voulu
df.to_csv(
"utilisateurs_export.csv",
index=False,
columns=["nom", "email", "score"]
)
print("Export terminé — mot de passe exclu.")
Ajouter des lignes à un fichier existant
Par défaut, to_csv() crée le fichier ou l'écrase s'il existe déjà. Pour ajouter des lignes à la suite d'un fichier existant — utile pour des logs ou des exports incrémentaux — utilisez le paramètre mode="a" (append) combiné avec header=False pour ne pas réécrire l'en-tête.
import pandas as pd # Premier export : crée le fichier avec l'en-tête df_janvier = pd.DataFrame({ "mois": ["Janvier"], "ventes": [15200] }) df_janvier.to_csv("historique.csv", index=False) # Mois suivants : ajout sans réécrire l'en-tête df_fevrier = pd.DataFrame({ "mois": ["Février"], "ventes": [18400] }) df_fevrier.to_csv("historique.csv", index=False, mode="a", header=False) df_mars = pd.DataFrame({ "mois": ["Mars"], "ventes": [21100] }) df_mars.to_csv("historique.csv", index=False, mode="a", header=False) # Vérification du résultat final print(pd.read_csv("historique.csv"))
Le fichier historique.csv contiendra trois lignes de données sous un seul en-tête. Si vous oubliez header=False lors des appends, vous retrouverez les noms de colonnes répétés dans les données — une erreur courante à éviter.
Pour exporter vers d'autres formats depuis un DataFrame, Pandas propose des méthodes analogues : to_excel(), to_json(), to_sql(), to_parquet(). Toutes suivent la même logique que to_csv().
Par carabde | Mis à jour le 26 avril 2026