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

[Erro] O código retorna erro

AttributeError                            Traceback (most recent call last)
<ipython-input-104-f3f6e3d4a02d> in <cell line: 9>()
      7 
      8 # apagamos o $ e as vírgulas com apply lambda
----> 9 dt_data['preco'] = dt_data['preco'].apply(lambda x: x.replace('$', '').replace(',',''))
     10 
     11 # transformamos os tipos de dados para float64

5 frames
lib.pyx in pandas._libs.lib.map_infer()

<ipython-input-104-f3f6e3d4a02d> in <lambda>(x)
      7 
      8 # apagamos o $ e as vírgulas com apply lambda
----> 9 dt_data['preco'] = dt_data['preco'].apply(lambda x: x.replace('$', '').replace(',',''))
     10 
     11 # transformamos os tipos de dados para float64

AttributeError: 'float' object has no attribute 'replace'

Então usei assim:

import numpy as np

dt_data['preco'].fillna('0.0', inplace = True)

dt_data['preco'] = dt_data['preco'].apply(lambda x: str(x).replace('$', '').replace(',',''))

dt_data['preco'] = dt_data['preco'].astype(np.float64)

dt_data
1 resposta
solução!

Oii, Paulino! Como você está?

Ótima solução, obrigada por compartilhar com a comunidade. Esse erro ocorre porque o método .replace() não suporta valores do tipo float. E a sua solução de converter os valores em strings com str(x) foi boa.

Continue se dedicando aos estudos e qualquer dúvida, conte conosco.

Bons estudos e até mais!