Convertir CSV en dictionnaire en Python

Rayven Esplanada 3 janvier 2023
  1. Utilisez le module csv pour convertir un fichier CSV en dictionnaire en Python
  2. Utilisation de Pandas pour convertir le fichier CSV en dictionnaire en Python
Convertir CSV en dictionnaire en Python

Ce tutoriel présente la manière de convertir un fichier csv en un dictionnaire en Python dans lequel le fichier csv contient deux colonnes. La première colonne contient les clés, et la seconde les valeurs.

Dans ce tutoriel, le contenu de l’exemple de fichier CSV est présenté ci-dessous.

Convertir le CSV en dictionnaire en Python

La première colonne contient les identificateurs qui seront utilisés comme clés et la deuxième colonne les valeurs.

Utilisez le module csv pour convertir un fichier CSV en dictionnaire en Python

Python a un module csv qui contient toutes sortes de fonctions utilitaires pour manipuler les fichiers CSV comme la conversion, la lecture, l’écriture et l’insertion. Pour convertir un fichier CSV en dictionnaire, ouvrez le fichier CSV et lisez-le dans une variable en utilisant la fonction csv reader(), qui va stocker le fichier dans un objet Python.

Ensuite, utilisez la compréhension du dictionnaire pour convertir l’objet CSV en dictionnaire en itérant l’objet reader et en accédant à ses deux premières lignes comme la paire clé-valeur du dictionnaire.

import csv

dict_from_csv = {}

with open("csv_file.csv", mode="r") as inp:
    reader = csv.reader(inp)
    dict_from_csv = {rows[0]: rows[1] for rows in reader}

print(dict_from_csv)

Production :

{'fruit': 'apple', 'vegetable': 'tomato', 'mammal': 'rabbit', 'fish': 'clownfish', 'bird': 'crow'}

Utilisation de Pandas pour convertir le fichier CSV en dictionnaire en Python

Une autre façon de convertir un fichier CSV en dictionnaire Python est d’utiliser le module Pandas, qui contient des outils de manipulation de données pour les fichiers CSV.

Après avoir importé des pandas, utilisez sa fonction intégrée read_csv() avec quelques paramètres pour spécifier le format du fichier csv. Après avoir appelé la fonction read_csv(), convertissez le résultat en dictionnaire en utilisant la fonction intégrée de pandas to_dict().

import pandas as pd

dict_from_csv = pd.read_csv(
    "csv_file.csv", header=None, index_col=0, squeeze=True
).to_dict()
print(dict_from_csv)

Le paramètre header spécifie que les en-têtes sont explicitement passés ou déclarés par un autre paramètre.

Le paramètre index_col spécifie quelle colonne est utilisée comme étiquette pour l’objet DataFrame que la fonction read_csv() renvoie. Dans ce cas, la première colonne de l’index 0 est les étiquettes.

Enfin, le paramètre squeeze définit si les données ne contiennent qu’une seule colonne pour les valeurs. Dans ce cas, il n’y a qu’une seule colonne puisque la première colonne est utilisée comme colonne d’index ou les étiquettes.

Production :

{'fruit': 'apple', 'vegetable': 'tomato', 'mammal': 'rabbit', 'fish': 'clownfish', 'bird': 'crow'}
Noter
Si vous rencontrez une erreur qui dit No module named 'pandas', alors assurez-vous que pandas est installé sur votre machine locale en utilisant pip install pandas ou pip3 install pandas si vous utilisez Python 3.
Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Article connexe - Python CSV

Article connexe - Python Dictionary