Back

Exporter un DataFrame Pandas en CSV : Guide complet de to_csv()

Exporter un DataFrame Pandas en CSV : Guide complet de to_csv()

Vous essayez d’enregistrer un DataFrame Pandas dans un fichier CSV ? La méthode to_csv() de Pandas permet d’exporter facilement vos données vers un fichier de valeurs séparées par des virgules (CSV) en quelques lignes de code.

Dans ce guide, nous allons voir comment utiliser to_csv() pour enregistrer un DataFrame au format CSV, en couvrant les principaux paramètres permettant de personnaliser la sortie. Vous verrez également des exemples d’options courantes comme l’exclusion de l’index, la spécification du séparateur, la gestion des données manquantes, etc.

Points clés à retenir

  • Utilisez df.to_csv('fichier.csv', index=False) pour enregistrer un DataFrame au format CSV sans l’index.
  • Spécifiez le séparateur avec le paramètre sep. Les options courantes sont la virgule , et la tabulation \t.
  • Représentez les données manquantes avec le paramètre na_rep.
  • Enregistrez un sous-ensemble de colonnes en passant une liste au paramètre columns.
  • Formatez les colonnes DateTime en utilisant date_format et les codes strftime.
  • Exportez directement vers des fichiers CSV compressés en fournissant un type de compression.

Comment exporter un DataFrame en CSV avec to_csv()

La syntaxe de base pour enregistrer un DataFrame Pandas df dans un fichier CSV est :

df.to_csv('data.csv', index=False)

Cela exportera le DataFrame dans un fichier nommé data.csv dans le répertoire courant. Le paramètre index=False exclut l’index du DataFrame de l’enregistrement dans le CSV.

Voici d’autres paramètres fréquemment utilisés de to_csv() :

  • sep : Chaîne de longueur 1 spécifiant le délimiteur de champ. La valeur par défaut est ,.
  • na_rep : Représentation sous forme de chaîne des données manquantes. La valeur par défaut est une chaîne vide.
  • header : Écrire les noms de colonnes dans le CSV. La valeur par défaut est True.
  • encoding : Encodage de fichier à utiliser. La valeur par défaut est 'utf-8'.

Nous explorerons ces options plus en détail dans les exemples ci-dessous.

Exemples d’exportation de DataFrames en CSV

Exportation basique d’un DataFrame en CSV

import pandas as pd

data = {'name': ['John', 'Anna', 'Peter', 'Linda'], 
        'age': [25, 31, 42, 28],
        'city': ['New York', 'Paris', 'Berlin', 'London']}

df = pd.DataFrame(data)

df.to_csv('people.csv', index=False)

Cela enregistre le DataFrame dans people.csv avec les options par défaut - séparateur virgule et pas de colonne d’index.

Spécifier le séparateur et la représentation des données manquantes

df.to_csv('people.csv', sep='\t', na_rep='MISSING', index=False)

Utilise la tabulation (\t) au lieu de la virgule comme séparateur et représente les données manquantes sous forme de chaîne 'MISSING'.

Enregistrer un sous-ensemble de colonnes en CSV

columns_to_save = ['name', 'age']
df.to_csv('people.csv', columns=columns_to_save, index=False)

Enregistre uniquement les colonnes 'name' et 'age' dans le CSV.

Gestion des colonnes DateTime

df['birth_date'] = pd.to_datetime(['1997-05-23', '1991-04-12', 
                                   '1980-09-01', '1994-11-18'])

df.to_csv('people.csv', date_format='%B %d, %Y', index=False)

Spécifie une chaîne de format de date personnalisée pour les colonnes DateTime à l’aide du paramètre date_format.

Exports CSV compressés

Pandas permet d’enregistrer directement dans des fichiers CSV compressés en spécifiant un type de compression :

# Enregistrer dans un CSV compressé gzip
df.to_csv('people.csv.gz', compression='gzip', index=False)

# Enregistrer dans un CSV compressé zip  
df.to_csv('people.zip', compression='zip', index=False)

Les types de compression pris en charge incluent 'gzip', 'bz2', 'zip', 'xz' et 'zstd'.

FAQ

Spécifiez l'encodage avec le paramètre `encoding` :\n\n```python\ndf.to_csv('data.csv', encoding='utf-16')\n```

Oui, utilisez `mode='a'` pour ajouter :\n\n```python\ndf.to_csv('data.csv', mode='a', header=False)\n```\n\nExcluez l'en-tête pour éviter de répéter les noms de colonnes.

Utilisez `sep=';'` pour le séparateur point-virgule et `decimal=','` pour la virgule décimale :\n\n```python\ndf.to_csv('data.csv', sep=';', decimal=',', index=False)\n```

Conclusion

Avec ces options, to_csv() de Pandas offre un moyen flexible d’exporter des DataFrames vers des fichiers CSV. En personnalisant des paramètres tels que le séparateur, l’encodage et la compression, vous pouvez générer des fichiers CSV compatibles avec une variété d’applications et de paramètres régionaux.

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers