Estoy intentando utilizar pandas para manipular un archivo .csv pero me da este error:
pandas.parser.CParserError: Error tokenizing data. Error de C: Se esperaban 2 campos en la línea 3, vio 12
He intentado leer la documentación de pandas, pero no he encontrado nada.
Mi código es simple:
path = 'GOOG Key Ratios.csv'
#print(open(path).read())
data = pd.read_csv(path)
¿Cómo puedo resolver esto? ¿Debo utilizar el módulo csv
u otro lenguaje?
El archivo es de Morningstar
El analizador sintáctico se confunde con la cabecera del archivo. Lee la primera fila y deduce el número de columnas a partir de esa fila. Pero las dos primeras filas no son representativas de los datos reales del archivo.
Pruebe con data = pd.read_csv(path, skiprows=2)
.
Me encontré con el mismo problema. El uso de pd.read_table()
en el mismo archivo fuente parecía funcionar. No pude averiguar la razón de esto, pero fue una solución útil para mi caso. Tal vez alguien con más conocimientos pueda arrojar más luz sobre por qué funcionó.
Editar: Encontré que este error aparece cuando tienes algún texto en tu archivo que no tiene el mismo formato que los datos reales. Normalmente se trata de información de cabecera o pie de página (de más de una línea, por lo que skip_header no funciona) que no estará separada por el mismo número de comas que los datos reales (cuando se utiliza read_csv). El uso de read_table utiliza un tabulador como delimitador, lo que podría evitar el error actual de los usuarios pero introducir otros.
Yo suelo evitarlo leyendo los datos extra en un archivo y luego usando el método read_csv().
La solución exacta puede variar dependiendo de su archivo actual, pero este enfoque ha funcionado para mí en varios casos