Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Importação de arquivo csv não divide em colunas

Importei um arquivo csv para teste, porém ele não realiza a separação das colunas

no csv se encontra separado por virgulas

df = pd.read_csv('Pesquisa de Satisfação - Presencial.csv', sep=',') df Porém aparece o: Error tokenizing data. C error: Expected 1 fields in line 3, saw 56

5 respostas

Oii Sergio, tudo certinho por ai?

Na realidade um arquivo .csv é um arquivo separado por vírgulas, csv significa comma separated values, que em português seria valores separados por vírgula.

Mas tirando o conhecimento geral, o Pandas CSV tem duas engines para ler um arquivo, o Python e o C, e o default utiliza o C, mas aparentemente no seu caso está tendo algum problema, você consegue tentar com o código abaixo e me dizer se deu certo?

df = pd.read_csv('Pesquisa de Satisfação - Presencial.csv', engine= 'python')

Fico no aguardo da sua resposta ^^

Oi Sthefanie, tudo bem?

Obrigado pela resposta, porém permaneceu com o mesmo erro

Oii Sergio, tudo bem?

Poxa, que pena que não deu certo, mas vamos tentar de outros modos, você pode disponibilizar o .csv para eu testar na minha máquina? Se conseguir, será muito mais fácil de prosseguirmos, se não, não tem problema, podemos explorar mais o problema. ^^

Oii Sthefanie, segue o link do documento https://www.dropbox.com/s/wxdimjwag1vyovq/Pesquisa.csv?dl=0

solução!

Oii Sergio, tudo bem?

Consegui baixar aqui seu documento .csv e o problema está na formatação dele, tive que fazer um tratamento à mão pra que desse certo a leitura. Existem alguns pontos de atenção no arquivo, vou listar o que eu fiz, passo a passo.

Depois de utilizar o engine='python', ele dá um erro na linha 3, onde ele espera ver apenas 1 campo, seguindo de exemplo as duas primeiras linhas, e encontra 56 campos (que são suas respostas do questionário), então fiz um skiprows=2 para que ele pulasse as duas primeiras linhas para ver como ficava e ele me retornou corretamente, mas vendo as 10 primeiras linhas encontrei algo estranho, como pode ver na imagem abaixo:

Primeiras 10 linhas do arquivo, com a posição 8 destacada

Depois de notar que a posição 8 da tabela estava com um problema, fui no banco de dados checar o que estava acontecendo e vi que essa linha, e mais algumas, tinham aspas duplas no começo e no final, assim:

Imagem da linha 12 do arquivo .csv com o problema das aspas duplas no começo da linha

Depois de tirar essas aspas e rodar novamente o código obtive um erro de novo, mas diferente dos outros, como você pode ver aqui:

Erro de quando tirei todas as aspas do começo e final das linhas de dados

E ai que vem o problema do seu arquivo, ele estava com aspas duplicadas ao invés de apenas aspas duplas abrindo e fechando a frase, estavam dessa forma:

Aspas duplicadas no documento

Retirei todas as aspas que estavam com esse problema e deu certo, mas quando eu voltava seu cabeçalho (tirando o parâmetro skiprows=2), ficava muito estranho porque a linha 2 era uma continuação da linha 1, então juntei as duas, e ficou mais estranho ainda, porque surgiram 112 colunas ao invés de apenas 56 (que é o número de colunas das respostas), ou seja, existiam muitas colunas que eram desnecessárias, fazendo uma limpeza mais a fundo nessa linha 1 de cabeçalho consegui fazer com que o documento ficasse com o número certo de colunas que deveria ser, você pode baixar ele aqui. Vale ressaltar que todas as manipulações foram feitas manualmente no arquivo .csv.

Eu não sei de onde você pegou esse documento, mas vale ressaltar a atenção para pequenos detalhes como esses na formatação do arquivo, algumas IDEs fazem essa duplicação de aspas as vezes, quando copia e cola, não sei se foi o caso, mas de toda forma, espero que agora consiga ver claramente o que precisa!

Agora uma sugestão para que a análise fique mais fácil é alterar o nome das colunas, não deixar elas com nomes muito grandes como a do CPF que temos no arquivo.

Qualquer outro problema ou dúvida, é só me chamar que estou por aqui!

Bons estudos ^^