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.
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')])
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
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.
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.



