Na atividade proposta de limpar a coluna preco do dataframe: moveis_disponiveis.json
A respota da atividade fica assim:
# importamos a biblioteca numpy
import numpy as np
# utilizamos o método fillna para preencher os elementos vazios por '0.0'
# definimos o parâmetro de inplace para True para substituir no DataFrame
dt_data['preco'].fillna('0.0', inplace = True)
# apagamos o $ e as vírgulas com apply lambda
dt_data['preco'] = dt_data['preco'].apply(lambda x: x.replace('$', '').replace(',',''))
# transformamos os tipos de dados para float64
dt_data['preco'] = dt_data['preco'].astype(np.float64)
# observamos o resultado final
dt_data
Entretanto, tentei fazer desta maneira
dt_data.preco.fillna('0.0', inplace = True)
dt_data.preco = dt_data.preco.str.replace('$','').replace(',','')
dt_data.preco = dt_data.preco.astype(np.float64)
E obtive o seguinte erro:
ValueError: could not convert string to float: '1,000.00'
As duas maneiras não são equivalentes? Onde fica o meu erro? Ao utilizar o str.replace os dados ainda continuam em string e não conseguem fazer a conversão?