I'estou tentando usar pandas para manipular um arquivo .csv, mas eu recebo este erro:
pandas.parser.CParserError: Dados de erro de tokenizing. Erro C: Esperados 2 campos na linha 3, serra 12
Eu tentei ler os documentos dos pandas, mas não encontrei nada.
O meu código é simples:
path = 'GOOG Key Ratios.csv'
#print(open(path).read())
data = pd.read_csv(path)
Como posso resolver isto? Devo utilizar o módulo csv
ou outro idioma?
O arquivo é de Morningstar.
O analisador está a ficar confuso com o cabeçalho do ficheiro. Ele lê a primeira linha e infere o número de colunas a partir dessa linha. Mas as duas primeiras linhas são't representativas dos dados reais no arquivo.
Tente com data = pd.read_csv(path, skiprows=2)
Deparei-me com o mesmo problema. Utilizando pd.read_table()
no mesmo arquivo fonte pareceu funcionar. Eu não consegui rastrear a razão para isto, mas foi uma solução útil para o meu caso. Talvez alguém mais conhecedor possa lançar mais luz sobre o porquê de ter funcionado.
Editar: Descobri que este erro se arrepia quando você tem algum texto no seu arquivo que não tem o mesmo formato que os dados reais. Esta é normalmente uma informação de cabeçalho ou rodapé (maior que uma linha, por isso saltar_cabeçalho não't funciona) que não será separada pelo mesmo número de vírgulas que os seus dados reais (ao usar o read_csv). Usando read_table usa um separador como delimitador que pode contornar o erro actual dos utilizadores mas introduzir outros.
Eu normalmente contorno isto lendo os dados extras em um arquivo e depois uso o método read_csv().
A solução exata pode diferir dependendo do seu arquivo real, mas esta abordagem funcionou para mim em vários casos