Comment lire un fichier CSV dans Python (Module, Exemples Pandas)

⚡ Résumé intelligent

Un fichier CSV stocke des données tabulaires sous forme de texte brut, les colonnes étant séparées par des virgules et les lignes par des sauts de ligne. Vous apprendrez ici à lire et à écrire des fichiers CSV. Python en utilisant le module csv intégré et la bibliothèque pandas.

  • 📄 Qu'est-ce que c'est: Un fichier CSV stocke des données tabulaires sous forme de texte brut séparé par des virgules.
  • ???? lecteur csv : csv.reader() lit les lignes d'un fichier CSV sous forme de listes.
  • 📚 Lecteur de dictionnaire : csv.DictReader() lit chaque ligne dans un dictionnaire ordonné.
  • ✍️ csv.writer : Les fonctions csv.writer() et writerow() écrivent des lignes dans un fichier CSV.
  • ???? Les pandas : pandas.read_csv() et to_csv() permettent de lire et d'écrire des fichiers CSV en une seule ligne.
  • 🤖 Aide de l'IA : Les outils d'IA comme Copilot génèrent instantanément du code de lecture et d'écriture CSV.

Lire le fichier CSV dans Python

Qu'est-ce qu'un fichier CSV?

A fichier CSV est un type simple de fichier texte brut qui utilise une structure spécifique pour organiser les données sous forme de tableau. Le format standard d'un fichier CSV est défini par des données de lignes et de colonnes où une nouvelle ligne termine chaque ligne pour commencer la ligne suivante, et chaque colonne est séparée par une virgule dans la ligne.

CSV est un format courant pour l'échange de données car il est compact, simple et général. De nombreux services en ligne permettent à leurs utilisateurs d'exporter des données tabulaires du site Web vers un fichier CSV. Les fichiers CSV s'ouvriront dans Excel et presque toutes les bases de données disposent d'un outil permettant l'importation à partir de fichiers CSV.

Exemple de fichier CSV

Les données sous forme de tableaux sont également appelées CSV (valeurs séparées par des virgules) – littéralement « valeurs séparées par des virgules ». Il s'agit d'un format de texte destiné à la présentation de données tabulaires. Chaque ligne du fichier correspond à une ligne du tableau. Les valeurs des colonnes individuelles sont séparées par un symbole séparateur – une virgule (,), un point-virgule (;) ou un autre symbole. CSV peut être facilement lu et traité par Python.

Considérez le tableau suivant

Données du tableau

Langage de programmation Conçu par Apparu Extension
Python Guido van Rossum 1991 py
Java James Goslin 1995 .Java
C++ Bjarne Stroustrup 1983 .cpp

Vous pouvez représenter ce tableau au format CSV comme ci-dessous.

Données CSV

Langage de programmation, Conçu par, Apparu, Extension

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C++, Bjarne Stroustrup,1983,.cpp

Comme vous pouvez le voir, chaque ligne est une nouvelle ligne et chaque colonne est séparée par une virgule. Ceci est un exemple de ce à quoi ressemble un fichier CSV.

Télécharger les données CSV

Python Module CSV

Python fournit un module CSV pour gérer les fichiers CSV. Pour lire/écrire des données, vous devez parcourir les lignes du CSV. Vous devez utiliser la méthode split pour obtenir les données des colonnes spécifiées.

Fonctions du module CSV

Dans la documentation du module CSV, vous pouvez trouver les fonctions suivantes :

  • csv.field_size_limit – renvoie la taille maximale du champ
  • csv.get_dialect – récupère le dialecte associé au nom
  • csv.list_dialects – afficher tous les dialectes enregistrés
  • csv.reader – lire les données d'un fichier csv
  • csv.register_dialect – associer le dialecte au nom
  • csv.writer – écrire des données dans un fichier csv
  • csv.unregister_dialect – supprime le dialecte associé au nom du registre de dialectes
  • csv.QUOTE_ALL – Citez tout, quel que soit le type.
  • csv.QUOTE_MINIMAL – Champs de citation avec caractères spéciaux
  • csv.QUOTE_NONNUMERIC – Citez tous les champs qui ne sont pas des valeurs numériques
  • csv.QUOTE_NONE – Ne citez rien dans la sortie

Dans ce tutoriel, nous allons nous concentrer uniquement sur les fonctions de lecture et d'écriture qui vous permettent d'éditer, de modifier et de manipuler les données d'un fichier CSV.

Comment lire un fichier CSV dans Python

Vous trouverez ci-dessous les étapes pour lire le fichier CSV dans Python.

Étape 1) Pour lire des données à partir de fichiers CSV, vous devez utiliser la fonction lecteur pour générer un objet lecteur.

La fonction de lecture est développée pour prendre chaque ligne du fichier et dresser une liste de toutes les colonnes. Ensuite, vous devez choisir la colonne pour laquelle vous souhaitez les données variables.

Cela semble beaucoup plus complexe qu’il ne l’est. Jetons un coup d'oeil à ceci Python code pour lire le fichier CSV, et nous découvrirons que travailler avec un fichier csv n'est pas si difficile.

#import necessary modules
import csv
with open('X:\data.csv','rt')as f:
  data = csv.reader(f)
  for row in data:
        print(row)

Étape 2) Lorsque vous exécutez le programme ci-dessus, le résultat sera :

['Programming language; Designed by; Appeared; Extension']
['Python; Guido van Rossum; 1991; .py']
['Java; James Gosling; 1995; .java']
['C++; Bjarne Stroustrup;1983;.cpp']

Comment lire un fichier CSV dans un dictionnaire dans Python

Vous pouvez également utiliser DictReader pour lire des fichiers CSV. Les résultats sont interprétés comme un dictionnaire dans lequel la ligne d'en-tête est la clé et les autres lignes sont des valeurs.

Considérez le code suivant

#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

Le résultat de ce code est :

OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])
OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])
OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

Lire un fichier CSV dans un dictionnaire

Et cette façon de lire les données d’un fichier CSV est beaucoup plus simple que la méthode précédente. Cependant, ce n’est pas la meilleure façon de lire des données.

Comment écrire un fichier CSV dans Python

Voici comment écrire un fichier CSV dans Python:

Lorsque vous souhaitez stocker un ensemble de données dans un fichier CSV, vous devez utiliser la fonctionwriter(). Pour parcourir les données sur les lignes (lignes), vous devez utiliser la fonction writerow().

Considérez l'exemple suivant. Nous écrivons les données dans un fichier « writeData.csv » où le délimiteur est une apostrophe.

#import necessary modules
import csv

with open('X:\writeData.csv', mode='w') as file:
    writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

    #way to write to csv file
    writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])
    writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])
    writer.writerow(['Java', 'James Gosling', '1995', '.java'])
    writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

Le résultat dans le fichier csv est :

Programming language, Designed by, Appeared, Extension 
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

écrire le fichier CSV dans Python

Lire le fichier CSV à l'aide de Pandas

Pandas est une bibliothèque open source qui vous permet d'importer du CSV dans Python et effectuer des manipulations de données. Les pandas offrent un moyen simple de créer, manipuler et supprimer les données.

Vous devez installer la bibliothèque pandas avec la commande pip install pandas . Dans Windows, vous exécuterez cette commande dans l’invite de commande sous Linux dans le terminal.

Lire le CSV dans un DataFrame pandas est très simple et rapide :

#import necessary modules
import pandas
result = pandas.read_csv('X:\data.csv')
print(result)

Résultat de la lire les pandas CSV Exemple:

Programming language, Designed by, Appeared, Extension 
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

Bibliothèque très utile. En seulement trois lignes de code, vous obtenez le même résultat que précédemment. Les pandas savent que la première ligne du CSV contenait des noms de colonnes et il les utilisera automatiquement.

Écrire un fichier CSV à l'aide de Pandas

L'écriture dans un fichier CSV avec Pandas est aussi simple que la lecture. Ici, vous pouvez vous en convaincre. Vous devez d'abord créer un DataFrame basé sur les éléments suivants Python écrire dans le code CSV.

from pandas import DataFrame
C = {'Programming language': ['Python','Java', 'C++'],
        'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
        'Appeared': ['1991', '1995', '1985'],
        'Extension': ['.py', '.java', '.cpp'],
    }
df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])
export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored
print (df)

Voici la sortie

Programming language, Designed by, Appeared, Extension
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

Et le fichier CSV est créé à l'emplacement spécifié.

Écrire un fichier CSV à l'aide de Pandas

FAQ

Un fichier CSV (valeurs séparées par des virgules) est un fichier texte brut qui stocke des données tabulaires. Chaque ligne correspond à une rangée, et les virgules séparent les valeurs de chaque colonne.

Importez le module csv, ouvrez le fichier et transmettez-le à csv.reader() pour parcourir les lignes sous forme de listes. Vous pouvez également utiliser csv.DictReader() pour lire chaque ligne comme un dictionnaire.

Ouvrez un fichier en mode écriture, créez un objet `csv.writer()`, puis appelez `writerow()` pour chaque ligne ou `writerows()` pour plusieurs lignes. L'objet `writer` gère automatiquement les guillemets et les délimiteurs.

La méthode `csv.DictReader()` lit un fichier CSV et le convertit en dictionnaires ordonnés, en utilisant l'en-tête de colonne comme clé. Cela permet d'accéder à chaque valeur par son nom de colonne plutôt que par son index.

Appelez pandas.read_csv('file.csv'), ce qui charge le fichier CSV dans un DataFrame en une seule ligne. Pandas utilise automatiquement la première ligne comme en-têtes de colonnes.

Les assistants IA comme GitHub Copilot complètent automatiquement les appels csv et pandas, génèrent des boucles de lecture et d'écriture et suggèrent le bon délimiteur ou l'option de guillemets à partir d'une brève description.

Oui. Les outils basés sur l'IA peuvent automatiser l'analyse, le nettoyage et la conversion des données CSV, générer des pipelines pandas et ajouter une gestion des erreurs pour les lignes malformées ou les colonnes manquantes.

Utilisez le module csv intégré pour une lecture et une écriture simples et rapides. Choisissez pandas lorsque vous devez filtrer, transformer ou analyser efficacement de grands ensembles de données CSV.

Résumez cet article avec :