Converti CSV in dizionario in Python

Rayven Esplanada 15 febbraio 2024
  1. Usa il modulo csv per convertire un file CSV in dizionario in Python
  2. Usa Pandas per convertire file CSV in dizionario in Python
Converti CSV in dizionario in Python

Questo tutorial introdurrà come convertire un file csv in un dizionario in Python in cui il file csv contiene due colonne. La prima colonna contiene le chiavi e la seconda colonna contiene i valori.

In questo tutorial, il contenuto per il CSV di esempio è mostrato di seguito.

Converti CSV in dizionario in Python

La prima colonna contiene gli identificatori che verranno utilizzati come chiavi e la seconda colonna sono i valori.

Usa il modulo csv per convertire un file CSV in dizionario in Python

Python ha un modulo csv che contiene tutti i tipi di funzioni di utilità per manipolare file CSV come conversione, lettura, scrittura e inserimento. Per convertire un file CSV in un dizionario, apri il file CSV e leggilo in una variabile utilizzando la funzione csv reader(), che memorizzerà il file in un oggetto Python.

Successivamente, usa la comprensione del dizionario per convertire l’oggetto CSV in un dizionario iterando l’oggetto reader e accedendo alle sue prime due righe come coppia chiave-valore del dizionario.

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)

Produzione:

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

Usa Pandas per convertire file CSV in dizionario in Python

Un altro modo per convertire un file CSV in un dizionario Python è utilizzare il modulo Pandas, che contiene strumenti di manipolazione dei dati per i file CSV.

Dopo aver importato i pandas, usa la sua funzione incorporata read_csv() con alcuni parametri per specificare il formato del file csv. Dopo aver chiamato read_csv(), converti il ​​risultato in un dizionario usando la funzione pandas incorporata 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)

Il parametro header specifica che le intestazioni vengono esplicitamente passate o dichiarate da un altro parametro.

index_col specifica quale colonna è usata come etichetta per l’oggetto DataFrame restituito dalla funzione read_csv(). In questo caso, la prima colonna dell’indice 0 sono le etichette.

Infine, il parametro squeeze definisce se i dati contengono solo una colonna per i valori. In questo caso, è presente una sola colonna poiché la prima colonna viene utilizzata come colonna dell’indice o come etichette.

Produzione:

{'fruit': 'apple', 'vegetable': 'tomato', 'mammal': 'rabbit', 'fish': 'clownfish', 'bird': 'crow'}
Nota
Se riscontri un errore che dice No module named 'pandas', assicurati che pandas sia installato nel tuo computer locale utilizzando pip install pandas o pip3 install pandas se stai utilizzando 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

Articolo correlato - Python CSV

Articolo correlato - Python Dictionary