1
resposta

O código pronto que separa o filme e respectivo ano ano não roda.O notebook roda normal até :

ano_de_lancamento = filmes.titulo.str.extract("\((\d{4})\)")
filmes['ano_de_lancamento'] = ano_de_lancamento.astype(float)
filmes.head(10)

Aparece:

AttributeError                            Traceback (most recent call last)
<ipython-input-27-b2ae0e74544c> in <module>
----> 1 ano_de_lancamento = filmes.titulo.str.extract("\((\d{4})\)")
      2 filmes['ano_de_lancamento'] = ano_de_lancamento.astype(float)
      3 filmes.head(10)

~\Anaconda3\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
   5055             if self._info_axis._can_hold_identifiers_and_holds_name(name):
   5056                 return self[name]
-> 5057             return object.__getattribute__(self, name)
   5058 
   5059     def __setattr__(self, name, value):

AttributeError: 'DataFrame' object has no attribute 'str'

Obs: O data frame já tem a coluna 'titulo'

1 resposta

Olá, Felipe! Tudo bem?

Peço perdão pela demora para responder o seu tópico.

Pelo erro apresentado, parece que o objeto "filmes" não possui o atributo "str", o que está causando o erro.

Uma possível solução para esse problema é verificar se o objeto "filmes" é realmente um DataFrame do pandas. Certifique-se de que você importou corretamente a biblioteca pandas e atribuiu os dados a um DataFrame.

Outra possível causa do erro é que a coluna "titulo" do DataFrame "filmes" não está sendo reconhecida como uma string. Nesse caso, você pode tentar converter a coluna "titulo" para o tipo string antes de utilizar o método str.extract. Por exemplo:

filmes['titulo'] = filmes['titulo'].astype(str)
ano_de_lancamento = filmes.titulo.str.extract("\((\d{4})\)")
filmes['ano_de_lancamento'] = ano_de_lancamento.astype(float)
filmes.head(10)

Dessa forma, você garante que a coluna "titulo" seja tratada como uma string antes de aplicar o método str.extract.

Todavia, vale ressaltar que como você postou sua pergunta há algum tempo é possível que a constante evolução da tecnologia impacte na resolução da sua dúvida. Sendo assim, caso queira se aprofundar neste tema e com conteúdos atualizados, recomendo a formação abaixo:

Espero ter ajudado.

Abraços e bons estudos!