2
respostas

Import com panda não funciona

Estou tentando inserir um dataset que dei o nome de teste.csv - mas ele apresenta o seguinte erro.


ParserError Traceback (most recent call last) in () ----> 1 licitacao = pd.read_csv('teste.csv')

3 frames /usr/local/lib/python3.6/dist-packages/pandas/io/parsers.py in read(self, nrows) 2035 def read(self, nrows=None): 2036 try: -> 2037 data = self.reader.read(nrows) 2038 except StopIteration: 2039 if self.first_chunk:

pandas/libs/parsers.pyx in pandas.libs.parsers.TextReader.read()

pandas/libs/parsers.pyx in pandas.libs.parsers.TextReader.readlow_memory()

pandas/libs/parsers.pyx in pandas.libs.parsers.TextReader.readrows()

pandas/libs/parsers.pyx in pandas.libs.parsers.TextReader.tokenizerows()

pandas/libs/parsers.pyx in pandas.libs.parsers.raise_parser_error()

ParserError: Error tokenizing data. C error: Expected 1 fields in line 3, saw 2

Link do csv para importação: https://drive.google.com/file/d/1pzf0N5P9cV5nSXVJUWPQY-0kDBXL2-o_/view?usp=sharing

Alguém poderia me ajudar a resolver?

2 respostas

Segundo a mensagem de erro "ParserError: Error tokenizing data. C error: Expected 1 fields in line 3, saw 2", você tem linha com 2 campos com informação, onde deveria ter apenas 1.

No arquivo .csv que você disponibilizou, possui varias linhas com informações em mais de um campo por linha, o erro não é só na linha 3 (como foi o primeiro detectado, foi o indicado). Basicamente, seu arquivo é .csv, mas não está no padrão csv.

Para que a função .read_csv() funcione, o arquivo tem que primeiro estar no padrão csv. No caso, informações separadas por delimitador em campo único por linha.

Olá Henrique,

Adicionando no que o Lucas falou, existem dois problemas no seu caso, o primeiro está no separador que é ; no arquivo, mas por padrão o pandas considera , como o separador. Assim você tem que adicionar o parâmetro sep para indicar que nesse arquivo os dados são separados por ;

licitacao = pd.read_csv('teste.csv', sep=';')

Se executar assim já vai aparecer um erro diferente.

O segundo problema está no encoding do arquivo. Por padrão o python espera o encoding UTF-8 mas esse arquivo está salvo em um encoding bem estranho. Infelizmente eu não consegui descobrir qual é o encoding correto, se possível recomendo você tentar salvar o arquivo novamente em UTF-8

Utilizando o encoding latin1 ainda dá pra abrir o arquivo, mas com alguns caracteres incorretos:

licitacao = pd.read_csv('teste.csv', sep=';', encoding='latin1')

Esperto ter ajudado, qualquer dúvida é só falar!