Comment lire un fichier CSV en Python | Lecture et écriture de fichiers CSV
Qu'est-ce qu'un fichier CSV ?
Un fichier CSV est un type simple de fichier texte brut qui utilise une structure spécifique pour organiser les données tabulaires. 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 dans 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.
Dans ce didacticiel, vous apprendrez :
- Qu'est-ce qu'un fichier CSV ?
- Exemple de fichier CSV
- Module CSV Python
- Fonctions du module CSV
- Comment lire un fichier CSV en Python
- Comment lire un fichier CSV dans un dictionnaire en Python
- Comment écrire un fichier CSV en Python
- Lire un fichier CSV à l'aide de Pandas
- Écrire un fichier CSV à l'aide de Pandas
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 texte destiné à la présentation de données tabulaires. Chaque ligne du fichier est une ligne du tableau. Les valeurs des colonnes individuelles sont séparées par un symbole de séparation - 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 Gosling | 1995 | .java |
C++ | Bjarne Stroustrup | 1983 | .cpp |
Vous pouvez représenter ce tableau en 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. Voici un exemple de l'apparence d'un fichier CSV.
Télécharger les données CSV
Module CSV Python
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 de fractionnement 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 – affiche tous les dialectes enregistrés
- csv.reader - lire les données d'un fichier csv
- csv.register_dialect – dialecte associé au nom
- csv.writer – écrire des données dans un fichier csv
- csv.unregister_dialect – supprimer 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 des 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 didacticiel, 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 dans un fichier CSV.
Comment lire un fichier CSV en Python
Voici les étapes pour lire le fichier CSV en 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 faire une liste de toutes les colonnes. Ensuite, vous devez choisir la colonne pour laquelle vous voulez les données variables.
Cela semble beaucoup plus complexe qu'il ne l'est. Jetons un coup d'œil à ce code Python 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, la sortie 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 en Python
Vous pouvez également utiliser DictReader pour lire les fichiers CSV. Les résultats sont interprétés comme un dictionnaire où 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')])
Et cette façon de lire les données du fichier CSV est beaucoup plus facile que la méthode précédente. Cependant, ce n'est pas la meilleure façon de lire les données.
Comment écrire un fichier CSV en Python
Voici comment écrire un fichier CSV en Python :
Lorsque vous avez un ensemble de données que vous souhaitez stocker dans un fichier CSV, vous devez utiliser la fonction writer(). Pour itérer les données sur les lignes (lignes), vous devez utiliser la fonction writerow().
Prenons l'exemple suivant. Nous écrivons des 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
Lire le fichier CSV à l'aide de Pandas
Pandas est une bibliothèque open source qui vous permet d'importer du CSV en Python et d'effectuer des manipulations de données. Les pandas offrent un moyen simple de créer, de manipuler et de supprimer les données.
Vous devez installer la bibliothèque pandas avec la commande pip install pandas
. Sous Windows, vous exécuterez cette commande dans l'invite de commande sous Linux dans le terminal.
La lecture du CSV dans un pandas DataFrame est très simple et rapide :
#import necessary modules import pandas result = pandas.read_csv('X:\data.csv') print(result)
Résultat de l'exemple de lecture de Pandas CSV :
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 contient des noms de colonnes, et il les utilisera automatiquement.
Écrire un fichier CSV à l'aide de Pandas
Écrire dans un fichier CSV avec Pandas est aussi simple que lire. Ici, vous pouvez en convaincre. Vous devez d'abord créer DataFrame basé sur l'écriture Python suivante 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 le résultat
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é.
Conclusion
Donc, maintenant vous savez comment utiliser la méthode 'csv' et aussi lire et écrire des données au format CSV. Les fichiers CSV sont largement utilisés dans les applications logicielles car ils sont faciles à lire et à gérer, et leur petite taille les rend relativement rapides pour le traitement et la transmission.
Le module csv fournit diverses fonctions et classes qui vous permettent de lire et d'écrire facilement. Vous pouvez consulter la documentation officielle de Python et trouver des astuces et des modules plus intéressants. CSV est le meilleur moyen d'enregistrer, de visualiser et d'envoyer des données. En fait, ce n'est pas si difficile à apprendre qu'il n'y paraît au début. Mais avec un peu de pratique, vous le maîtriserez.
Pandas est une excellente alternative pour lire les fichiers CSV.
En outre, il existe d'autres moyens d'analyser des fichiers texte avec des bibliothèques telles que ANTLR, PLY et PlyPlus. Ils peuvent tous gérer une analyse intensive, et si une simple manipulation de chaîne ne fonctionne pas, il existe des expressions régulières que vous pouvez utiliser.
Python
- Mots clés et identifiants Python
- Instruction Python, indentation et commentaires
- Variables, constantes et littéraux Python
- Conversion de type Python et conversion de type
- Entrée, sortie et importation Python
- Variables Python globales, locales et non locales
- E/S de fichier Python
- Répertoire Python et gestion des fichiers
- Erreurs Python et exceptions intégrées