Converter o CSV em Dicionário em Python

Rayven Esplanada 30 janeiro 2023
  1. Utilize o módulo csv para converter o ficheiro CSV em Dicionário em Python
  2. Utilizar Pandas para Converter Ficheiro CSV em Dicionário em Python
Converter o CSV em Dicionário em Python

Este tutorial irá introduzir como converter um ficheiro csv num dicionário em Python em que o ficheiro csv contém duas colunas. A primeira coluna contém as chaves, e a segunda coluna contém os valores.

Neste tutorial, o conteúdo para a amostra CSV é mostrado abaixo.

Converter o CSV In em Dicionário em Python

A primeira coluna contém identificadores que serão utilizados como chaves e a segunda coluna são os valores.

Utilize o módulo csv para converter o ficheiro CSV em Dicionário em Python

Python tem um módulo csv que contém todo o tipo de funções utilitárias para manipular ficheiros CSV como conversão, leitura, escrita, e inserção. Para converter um ficheiro CSV num dicionário, abra o ficheiro CSV e leia-o numa variável utilizando a função csv reader(), que irá armazenar o ficheiro num objecto Python.

Depois, utilize a compreensão do dicionário para converter o objecto CSV num dicionário, iterando o objecto reader e acedendo às suas duas primeiras linhas como o par de valores-chave do dicionário.

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)

Resultado:

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

Utilizar Pandas para Converter Ficheiro CSV em Dicionário em Python

Outra forma de converter um ficheiro CSV para um dicionário Python é utilizar o módulo Pandas, que contém ferramentas de manipulação de dados para ficheiros CSV.

Depois de importar pandas, fazer uso da sua função interna read_csv() com alguns parâmetros para especificar o formato do ficheiro csv. Depois de chamar read_csv(), converter o resultado para um dicionário utilizando a função integrada 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)

O parâmetro header especifica que os cabeçalhos são explicitamente passados ou declarados por outro parâmetro.

O parâmetro index_col especifica que coluna é utilizada como etiquetas para o objecto DataFrame que a função read_csv() devolve. Neste caso, a primeira coluna do índice 0 são os rótulos.

Por último, o parâmetro squeeze define se os dados contêm apenas uma coluna para valores. Neste caso, existe apenas uma coluna, uma vez que a primeira coluna é utilizada como a coluna de índice ou os rótulos.

Resultado:

{'fruit': 'apple', 'vegetable': 'tomato', 'mammal': 'rabbit', 'fish': 'clownfish', 'bird': 'crow'}
Nota
Se experimentar um erro que diz No module named 'pandas', então certifique-se que pandas está instalado na sua máquina local utilizando pip install pandas ou pip3 install pandas se estiver a executar o 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

Artigo relacionado - Python CSV

Artigo relacionado - Python Dictionary