Converter o CSV em Dicionário em Python

  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

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

mydict = {}

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.

Artigo relacionado - Python CSV

  • Como ler CSV para listar em Python
  • Artigo relacionado - Python Dictionary

  • Pretty Imprimir um Dicionário Bonito em Python
  • Escrever Dicionário no CSV em Python