Comment lire un fichier CSV dans Python (Module, Exemples Pandas)
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.
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')])
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
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é.
Conclusion
Vous savez maintenant comment utiliser la méthode « csv » et également 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 à traiter et à transmettre.
Le module csv fournit diverses fonctions et classes qui vous permettent de lire et d'écrire facilement. Vous pouvez consulter le fonctionnaire Python documentation et découvrez d'autres astuces et modules intéressants. CSV est le meilleur moyen de sauvegarder, d'afficher et d'envoyer des données. En fait, ce n'est pas aussi 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 des fichiers CSV.
Il existe également 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 lourde, et si une simple manipulation de chaîne ne fonctionne pas, il existe des expressions régulières que vous pouvez utiliser.