Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida importando dados SUS

Fala galera.

Minha questão é o seguinte: peguei uns dados do opendatasus para poder colocar em prática o que eu estou aprendendo durante os cursos, mas não consegui nem abrir o arquivo. E o estranho é que eu consegui abrir o arquivo no Colab mas não consegui no Jupiter.

O código: IN: import pandas as pd dados = pd.read_csv('dadosSUS/dados-sp.csv', sep = ";")

OUT

ParserError                               Traceback (most recent call last)
<ipython-input-13-d24121c558a0> in <module>
----> 1 dados = pd.read_csv('dadosSUS/dados-sp.csv', sep = ";")
      2 dados

~\anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision)
    674         )
    675 
--> 676         return _read(filepath_or_buffer, kwds)
    677 
    678     parser_f.__name__ = name

~\anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
    452 
    453     try:
--> 454         data = parser.read(nrows)
    455     finally:
    456         parser.close()

~\anaconda3\lib\site-packages\pandas\io\parsers.py in read(self, nrows)
   1131     def read(self, nrows=None):
   1132         nrows = _validate_integer("nrows", nrows)
-> 1133         ret = self._engine.read(nrows)
   1134 
   1135         # May alter columns / col_dict

~\anaconda3\lib\site-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._read_low_memory()

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._read_rows()

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._tokenize_rows()

pandas\_libs\parsers.pyx in pandas._libs.parsers.raise_parser_error()

ParserError: Error tokenizing data. C error: Expected 33 fields in line 12814, saw 34

Tentei procurar pelo Google mas não consegui achar uma solução. Alguém pode me dar um caminho ou alguma ideia do que eu poderia fazer? (que não seja desistir rs)

1 resposta
solução!

Oi Felipe,

Estranho que tenha conseguido abrir no colab e não no pc. Normalmente esse tipo de erro é vinculado ao tipo de separador mesmo. Mas como está no pc eu tentaria abrir o arquivo no bloco de notas ou excel e verifcar se existe alguma informação extra no arquivo. Baixei alguns dados do sus e eles vieram com linhas de explicação no início e no fim no arquivo.

Nesse caso você pode por exemplo o skiprows para ignorar algumas linhas.

dataframe= pd.read_csv('dados-sp.csv', skiprows=2)

Avise se o problema continuar.