Como ler arquivo CSV em Python (Módulo, Exemplos de Pandas)

O que é um arquivo CSV?

A arquivo CSV é um tipo simples de arquivo de texto simples que usa uma estrutura específica para organizar dados tabulares. O formato padrão de um arquivo CSV é definido por dados de linhas e colunas, onde uma nova linha termina cada linha para iniciar a próxima linha e cada coluna é separada por uma vírgula dentro da linha.

CSV é um formato comum para intercâmbio de dados, pois é compacto, simples e geral. Muitos serviços online permitem que seus usuários exportem dados tabulares do site para um arquivo CSV. Arquivos CSV serão abertos no Excel e quase todos os bancos de dados possuem uma ferramenta que permite a importação de arquivos CSV.

Arquivo de amostra CSV

Os dados na forma de tabelas também são chamados de CSV (valores separados por vírgula) – literalmente “valores separados por vírgula”. Este é um formato de texto destinado à apresentação de dados tabulares. Cada linha do arquivo é uma linha da tabela. Os valores de colunas individuais são separados por um símbolo separador – uma vírgula (,), um ponto e vírgula (;) ou outro símbolo. CSV pode ser facilmente lido e processado por Python.

Considere a seguinte tabela

Tabela de dados

Linguagem de programação Projetado por Apareceu Extensão
Python Guido van Rossum 1991 .py
Java James Goslin 1995 .Java
C++ Bjarne Stroustrup 1983 .cpp

Você pode representar esta tabela em csv conforme abaixo.

Dados CSV

Linguagem de programação, projetada por, apareceu, extensão

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C++, Bjarne Stroustrup,1983,.cpp

Como você pode ver, cada linha é uma nova linha e cada coluna é separada por uma vírgula. Este é um exemplo da aparência de um arquivo CSV.

Baixar dados CSV

Python Módulo CSV

Python fornece um módulo CSV para lidar com arquivos CSV. Para ler/gravar dados, você precisa percorrer as linhas do CSV. Você precisa usar o método split para obter dados de colunas especificadas.

Funções do módulo CSV

Na documentação do módulo CSV você pode encontrar as seguintes funções:

  • csv.field_size_limit – retorna o tamanho máximo do campo
  • csv.get_dialect – obtém o dialeto associado ao nome
  • csv.list_dialects – mostra todos os dialetos registrados
  • csv.reader – lê dados de um arquivo csv
  • csv.register_dialect – associa dialeto ao nome
  • csv.writer – grava dados em um arquivo csv
  • csv.unregister_dialect – exclui o dialeto associado ao nome do registro do dialeto
  • csv.QUOTE_ALL – Cite tudo, independente do tipo.
  • csv.QUOTE_MINIMAL – Campos de cotação com caracteres especiais
  • csv.QUOTE_NONNUMERIC – Cite todos os campos que não são valores numéricos
  • csv.QUOTE_NONE – Não cite nada na saída

Neste tutorial, vamos nos concentrar apenas nas funções de leitor e gravador que permitem editar, modificar e manipular os dados em um arquivo CSV.

Como ler um arquivo CSV em Python

Abaixo estão as etapas para ler o arquivo CSV em Python.

Passo 1) Para ler dados de arquivos CSV, você deve usar a função leitor para gerar um objeto leitor.

A função de leitor é desenvolvida para pegar cada linha do arquivo e fazer uma lista de todas as colunas. Em seguida, você deve escolher a coluna para a qual deseja os dados variáveis.

Parece muito mais complexo do que é. Vamos dar uma olhada nisso Python código para ler o arquivo CSV, e descobriremos que trabalhar com arquivo csv não é tão difícil.

#import necessary modules
import csv
with open('X:\data.csv','rt')as f:
  data = csv.reader(f)
  for row in data:
        print(row)

Passo 2) Ao executar o programa acima, a saída será:

['Programming language; Designed by; Appeared; Extension']
['Python; Guido van Rossum; 1991; .py']
['Java; James Gosling; 1995; .java']
['C++; Bjarne Stroustrup;1983;.cpp']

Como ler um arquivo CSV em um dicionário em Python

Você também pode usar o DictReader para ler arquivos CSV. Os resultados são interpretados como um dicionário onde a linha do cabeçalho é a chave e as outras linhas são valores.

Considere o seguinte código

#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

O resultado deste código é:

OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])
OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])
OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

Ler um arquivo CSV em um dicionário

E esta forma de ler dados do arquivo CSV é muito mais fácil do que o método anterior. No entanto, esta não é a melhor maneira de ler dados.

Como escrever um arquivo CSV em Python

Aqui está como escrever um arquivo CSV em Python:

Quando você tem um conjunto de dados que gostaria de armazenar em um arquivo CSV, você deve usar a função escritor(). Para iterar os dados nas linhas (linhas), você deve usar a função writerow().

Considere o seguinte exemplo. Escrevemos os dados em um arquivo “writeData.csv” onde o delimitador é um apóstrofo.

#import necessary modules
import csv

with open('X:\writeData.csv', mode='w') as file:
    writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

    #way to write to csv file
    writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])
    writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])
    writer.writerow(['Java', 'James Gosling', '1995', '.java'])
    writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

O resultado no arquivo csv é:

Programming language, Designed by, Appeared, Extension 
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

escrever arquivo CSV em Python

Leia o arquivo CSV usando Pandas

Pandas é uma biblioteca de código aberto que permite importar CSV em Python e realizar manipulação de dados. Pandas fornece uma maneira fácil de criar, manipular e excluir dados.

Você deve instalar a biblioteca pandas com o comando pip install pandas . Em Windows, você executará este comando no prompt de comando enquanto estiver no Linux no Terminal.

Ler o CSV em um DataFrame do pandas é muito rápido e fácil:

#import necessary modules
import pandas
result = pandas.read_csv('X:\data.csv')
print(result)

Resultado do leia CSV Pandas exemplo:

Programming language, Designed by, Appeared, Extension 
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

Biblioteca muito útil. Em apenas três linhas de código você obtém o mesmo resultado anterior. O Pandas sabe que a primeira linha do CSV contém nomes de colunas e os usará automaticamente.

Escreva um arquivo CSV usando Pandas

Escrever em um arquivo CSV com Pandas é tão fácil quanto ler. Aqui você pode se convencer disso. Primeiro você deve criar DataFrame com base no seguinte Python escreva no código CSV.

from pandas import DataFrame
C = {'Programming language': ['Python','Java', 'C++'],
        'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
        'Appeared': ['1991', '1995', '1985'],
        'Extension': ['.py', '.java', '.cpp'],
    }
df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])
export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored
print (df)

Aqui está o resultado

Programming language, Designed by, Appeared, Extension
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

E o arquivo CSV é criado no local especificado.

Escreva um arquivo CSV usando Pandas

Conclusão

Então agora você sabe como usar o método 'csv' e também ler e gravar dados no formato CSV. Os arquivos CSV são amplamente utilizados em aplicativos de software porque são fáceis de ler e gerenciar, e seu tamanho pequeno os torna relativamente rápidos para processamento e transmissão.

O módulo csv oferece várias funções e classes que permitem ler e escrever facilmente. Você pode olhar para o oficial Python documentação e encontre mais algumas dicas e módulos interessantes. CSV é a melhor maneira de salvar, visualizar e enviar dados. Na verdade, não é tão difícil de aprender quanto parece no começo. Mas com um pouco de prática, você vai dominá-lo.

Pandas é uma ótima alternativa para ler arquivos CSV.

Além disso, existem outras maneiras de analisar arquivos de texto com bibliotecas como ANTLR, PLY e PlyPlus. Todos eles podem lidar com análises pesadas e, se a manipulação simples de String não funcionar, existem expressões regulares que você pode usar.

Resuma esta postagem com: