2
respostas

[Dúvida] Como converter coluna object (exemplo: 'R$ 2.500,00') em nºs float, em python

Oi gente, eu estou tentando aplicar o que aprendo nos cursos nas tabelas do trabalho mas está difícil. São todas sem tratamento de dados e estou perdendo de 7x1. Preciso converter umas colunas, q foram todas preenchidas como string, em valores em reais, para qq coisa q me permita fazer comparações entre os números. Meu único avanço foi excluir o R$ com regex, acho (pq já tentei tanta coisa). Tentei usar astype, e o locale não deu certo pq aqui no trabalho nao tem pt-BR e eu não consigo instalar no prompt, outra sugestão aleatória q vi na internet. Agradeço mto qq luz vinda dos mais experientes. Obrigada

2 respostas

Olá, Denise, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

Uma solução para realizar a transformação dos dados do tipo string que possui caracteres especiais (R$ e ,) para o tipo float, será utilizando a função str.replace() para remover os caracteres especiais e utilizando a função astype() para realizar a conversão de tipos. Como demonstrado no exemplo abaixo:

import pandas as pd

data = {'nome': ['Produto A', 'Produto B', 'Produto C'],
        'valor': ['R$ 100,00', 'R$ 150,50', 'R$ 75,25']}

df = pd.DataFrame(data)

# Removendo o 'R$' e as vírgulas da coluna 'valor' e convertendo para float
df['valor'] = df['valor'].str.replace('R\$', '').str.replace(',', '').astype(float)

type(df['valor'][0])

Resultado

numpy.float64

Após realizar a conversão dos dados da coluna de valores para o tipo float você poderá dar continuidade nas análises e cálculos utilizando os dados.

Espero ter ajudado e que essa resposta seja um bom ponto de partida para o seu projeto.

Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

obigada!