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

[Dúvida] Uso do replace ao invés do fillna

Olá, tudo bem?

Fiz a resolução de outra maneira, porem não tenho certeza se está correta ou se poderia dar problema com outra base, podem avaliar?

# converter para string
dt_data['preco'] = dt_data['preco'].astype(str)

# transformar os dados
dt_data['preco'] = dt_data['preco'].apply(lambda x: x.replace('None', '0.0').replace('$', '').replace(',','').strip())

# converter para float
dt_data['preco'] = dt_data['preco'].astype(np.float64)

Obrigado!!

1 resposta
solução!

Boa tarde Eduardo! Tudo bem com você?

Você utilizou a função replace para substituir a string 'None' por '0.0', removeu o símbolo $ e as vírgulas, e depois converteu a coluna para o tipo float64. Essa abordagem funciona bem geralmente.

No entanto, é importante considerar algumas coisas:

  • Se houver valores NaN na coluna preco, eles não serão substituídos pelo seu método atual, pois replace não lida com NaN. Para garantir que todos os valores vazios sejam tratados, você pode usar fillna('0.0') antes de aplicar o replace.

  • Se a base de dados for alterada ou se você trabalhar com outra base que tenha formatos diferentes de dados, pode ser necessário ajustar a lógica de transformação para lidar com novos casos.

Portanto, no geral, é mais indicado usar o fillna para lidar com valores ausentes ou NaN, garantindo que todos os registros sejam tratados antes de aplicar transformações.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado