9
respostas

Error tokenizing data. C error: EOF inside string starting at row 739

Olá boa noite, estou com alguns problemas o primeiro é o do titulo, segui certinho para ler o tmdv_5000_movies.csv mas continua aparecendo o seguinte erro Outra coisa que esta acontecendo é que quando fui entrar novamente no colab e fui rodar os códigos e adicionar os csv de volta todos os gráficos ficaram assim, perderam as colunas e sem dados


ParserError Traceback (most recent call last)

in <cell line: 1>() ----> 1 tmdb = pd.read_csv("tmdb_5000_movies.csv") 2 tmdb.head()

9 frames

/usr/local/lib/python3.10/dist-packages/pandas/_libs/parsers.pyx in pandas._libs.parsers.raise_parser_error()

ParserError: Error tokenizing data. C error: EOF inside string starting at row 739

9 respostas

Oii Matheus, como você está?

Puxa, que estranho ter acontecido esse erro. Sugiro que faça novamente o download dos arquivos da aula e o upload no Colab. Alguns erros "misteriosos" do Google Colab podem ser resolvidos apenas reiniciando o ambiente de execução. Você pode fazer isso pelo menu "Ambiente de execução > reiniciar ambiente de execução".

Espero que isso resolva seu problema. Qualquer coisa me avise.

Abraços.

Então tentei aqui fazer isso, mas não resolveu, continua dando o mesmo erro.

O erro dos graficos resolveu, mas o do tmdb_5000_movies.csv não vai de jeito nenhum


tmdb = pd.read_csv("tmdb_5000_movies.csv")
tmdb.head()

---------------------------------------------------------------------------

ParserError                               Traceback (most recent call last)

<ipython-input-4-b7475edff32c> in <cell line: 1>()
----> 1 tmdb = pd.read_csv("tmdb_5000_movies.csv")
      2 tmdb.head()

9 frames

/usr/local/lib/python3.10/dist-packages/pandas/_libs/parsers.pyx in pandas._libs.parsers.raise_parser_error()

ParserError: Error tokenizing data. C error: EOF inside string starting at row 1572

Oi, Matheus,

Curioso que na primeira vez você recebeu o erro na linha 739, e agora na linha 1572!

Verifiquei no arquivo e as duas linhas estão com a formatação coerente com o restante do arquivo.

Execute o seguinte comando. Pode ser que sua versão do pandas esteja desatualizada e dificultando a leitura do arquivo:

pip install --upgrade pandas

Me avise o que acontecer! Fico no aguardo.

Coloquei aqui o código mas esta aparecendo isso agora:

ParserError                               Traceback (most recent call last)

<ipython-input-28-b7475edff32c> in <cell line: 1>()
----> 1 tmdb = pd.read_csv("tmdb_5000_movies.csv")
      2 tmdb.head()

5 frames

/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/c_parser_wrapper.py in read(self, nrows)
    228         Mapping[Hashable, ArrayLike],
    229     ]:
--> 230         index: Index | MultiIndex | None
    231         column_names: Sequence[Hashable] | MultiIndex
    232         try:

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: EOF inside string starting at row 739

Matheus, como vai?

Vamos tentar adicionar um argumento na função read_csv, a on_bad_lines. Esse parâmetro configura a ação quando o pandas encontra alguma linha que não está corretamente configurada. Com o valor skip, indicamos que essas linhas serão puladas. O valor padrão desse parâmetro é a mensagem de erro.

dados = pd.read_csv('/content/tmdb_5000_movies.csv', on_bad_lines='skip')

Altere o código acima para melhor se encaixar no seu projeto.

Fico na torcida!

Tentei aqui e ainda esta aparecendo o erro:

---------------------------------------------------------------------------

ParserError                               Traceback (most recent call last)

<ipython-input-24-1aa374db0dc3> in <cell line: 1>()
----> 1 tmdb = pd.read_csv('/content/tmdb_5000_movies.csv', on_bad_lines='skip')
      2 tmdb.head

3 frames

/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/c_parser_wrapper.py in read(self, nrows)
    232         try:
    233             if self.low_memory:
--> 234                 chunks = self._reader.read_low_memory(nrows)
    235                 # destructive to chunks
    236                 data = _concatenate_chunks(chunks)

parsers.pyx in pandas._libs.parsers.TextReader.read_low_memory()

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

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

parsers.pyx in pandas._libs.parsers.TextReader._check_tokenize_status()

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

ParserError: Error tokenizing data. C error: EOF inside string starting at row 1572

Matheus, que barra!

Investigando mais sobre esse erro, descobri que pode ser por uma "confusão" na engine do Pandas. O default é que o parser utilize C, e pode ser que no seu caso, algum problema esteja surgindo nesse momento. É possível especificar a linguagem para que se utilize o Python, mesmo, assim:

tmdb = pd.read_csv('tmdb_5000_movies.csv', engine= 'python')
tmdb.head()

Fico aqui na torcida. Me avise o que acontecer :)

Abraços.

Olá tentei aqui essa solução mas ainda não deu certo segue o erro:

---------------------------------------------------------------------------

Error                                     Traceback (most recent call last)

/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/python_parser.py in _next_iter_line(self, row_num)
    799             assert self.data is not None
--> 800             line = next(self.data)
    801             # for mypy

Error: unexpected end of data


During handling of the above exception, another exception occurred:

ParserError                               Traceback (most recent call last)

7 frames

<ipython-input-23-9257906a1a91> in <cell line: 1>()
----> 1 tmdb = pd.read_csv('tmdb_5000_movies.csv', engine= 'python')
      2 tmdb.head()

/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/readers.py in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, 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, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options, dtype_backend)
    946     kwds.update(kwds_defaults)
    947 
--> 948     return _read(filepath_or_buffer, kwds)
    949 
    950 

/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/readers.py in _read(filepath_or_buffer, kwds)
    615 
    616     with parser:
--> 617         return parser.read(nrows)
    618 
    619 

/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/readers.py in read(self, nrows)
   1746                     columns,
   1747                     col_dict,
-> 1748                 ) = self._engine.read(  # type: ignore[attr-defined]
   1749                     nrows
   1750                 )

/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/python_parser.py in read(self, rows)
    248     ]:
    249         try:
--> 250             content = self._get_lines(rows)
    251         except StopIteration:
    252             if self._first_chunk:

/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/python_parser.py in _get_lines(self, rows)
   1133 
   1134                         while True:
-> 1135                             new_row = self._next_iter_line(row_num=self.pos + rows + 1)
   1136                             rows += 1
   1137 

/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/python_parser.py in _next_iter_line(self, row_num)
    827                     msg += ". " + reason
    828 
--> 829                 self._alert_malformed(msg, row_num)
    830             return None
    831 

/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/python_parser.py in _alert_malformed(self, msg, row_num)
    777         """
    778         if self.on_bad_lines == self.BadLineHandleMethod.ERROR:
--> 779             raise ParserError(msg)
    780         if self.on_bad_lines == self.BadLineHandleMethod.WARN:
    781             base = f"Skipping line {row_num}: "

ParserError: unexpected end of data

Puxa, Matheus. Sinto muito que você esteja tanto tempo travado no curso.

Vou deixar aqui algumas outras opções:

  • Você está utilizando o Google Colab? Se não, sugiro que o utilize;
  • Você pode baixar novamente a base de dados diretamente no Kaggle. Após o download, faça o upload tradicional na plataforma do Colab e tente a leitura novamente.
  • Outra alternativa é utilizar o raw do GitHub:
pd.read_csv("https://raw.githubusercontent.com/alura-cursos/introducao-a-data-science/aula3/aula3.1/tmdb_5000_movies.csv")

Aguardo seu retorno.

Abraços.