Convertir CSV en diccionario en Python

Rayven Esplanada 30 enero 2023
  1. Utilice el módulo csv para convertir un archivo CSV en un diccionario en Python
  2. Usar Pandas para convertir un archivo CSV en un diccionario en Python
Convertir CSV en diccionario en Python

Este tutorial presentará cómo convertir un archivo csv en un diccionario en Python, donde el archivo csv contiene dos columnas. La primera columna contiene las claves y la segunda los valores.

En este tutorial, el contenido del CSV de ejemplo se muestra a continuación.

Convertir un CSV en un diccionario en Python

La primera columna contiene identificadores que serán utilizados como claves y la segunda columna son los valores.

Utilice el módulo csv para convertir un archivo CSV en un diccionario en Python

Python tiene un módulo csv que contiene todo tipo de funciones de utilidad para manipular archivos CSV como conversión, lectura, escritura e inserción. Para convertir un archivo CSV en un diccionario, abra el archivo CSV y léalo en una variable utilizando la función csv reader(), que almacenará el archivo en un objeto Python.

Después, utilice la comprensión del diccionario para convertir el objeto CSV en un diccionario iterando el objeto reader y accediendo a sus dos primeras filas como el par clave-valor del diccionario.

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)

Producción :

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

Usar Pandas para convertir un archivo CSV en un diccionario en Python

Otra forma de convertir un archivo CSV en un diccionario de Python es utilizar el módulo Pandas, que contiene herramientas de manipulación de datos para archivos CSV.

Después de importar pandas, haga uso de su función incorporada read_csv() con algunos parámetros para especificar el formato del archivo csv. Después de llamar a read_csv(), convierta el resultado en un diccionario usando la función incorporada 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)

El parámetro header especifica que las cabeceras son pasadas explícitamente o declaradas por otro parámetro.

El parámetro index_col especifica qué columna se utiliza como etiquetas para el objeto DataFrame que devuelve la función read_csv(). En este caso, la primera columna de índice 0 es la de las etiquetas.

Por último, el parámetro squeeze define si los datos contienen sólo una columna de valores. En este caso, sólo hay una columna ya que la primera columna se utiliza como columna índice o las etiquetas.

Producción :

{'fruit': 'apple', 'vegetable': 'tomato', 'mammal': 'rabbit', 'fish': 'clownfish', 'bird': 'crow'}
Nota
Si experimenta un error que dice No module named 'pandas', entonces asegúrese de que pandas está instalado en su máquina local usando pip install pandas o pip3 install pandas si está ejecutando 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

Artículo relacionado - Python CSV

Artículo relacionado - Python Dictionary