Como corrigir no pandas: não é possível converter string em float


Um erro comum que você pode encontrar ao usar pandas é:

 ValueError : could not convert string to float: '$400.42'

Este erro normalmente ocorre quando você tenta converter uma string em float no pandas, quando a string contém um ou mais dos seguintes itens:

  • Os espaços
  • Vírgulas
  • Caracteres especiais

Quando isso acontece, você deve primeiro remover esses caracteres da string antes de convertê-la em float.

O exemplo a seguir mostra como resolver esse erro na prática.

Como reproduzir o erro

Suponha que temos o seguinte DataFrame do pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['A', 'B', 'C', 'D'],
                   ' revenue ': ['$400.42', '$100.18', '$243.75', '$194.22']})

#view DataFrame
print (df)

  store revenue
0 A $400.42
1 B $100.18
2 C $243.75
3D $194.22

#view data type of each column
print ( df.dtypes )

store object
revenue object
dtype:object

Agora suponha que estamos tentando converter a coluna de receita de uma string para um float:

 #attempt to convert 'revenue' from string to float
df[' revenue '] = df[' revenue ']. astype (float)

ValueError : could not convert string to float: '$400.42'

Estamos recebendo um erro porque a coluna de renda contém um cifrão nas strings.

Como corrigir o erro

A maneira de resolver esse erro é usar a função replace() para substituir os cifrões na coluna de receita por nada antes de realizar a conversão:

 #convert revenue column to float
df[' revenue '] = df[' revenue ']. apply ( lambda x: float(x. split ()[ 0 ]. replace (' $ ', '')))

#view updated DataFrame
print (df)

  store revenue
0 to 400.42
1 B 100.18
2 C 243.75
3 D 194.22

#view data type of each column
print ( df.dtypes )

store object
income float64
dtype:object

Observe que podemos converter a coluna de receita de uma string para flutuante e não estamos recebendo nenhum erro, pois removemos os cifrões antes de fazer a conversão.

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:

Como corrigir em Python: o objeto ‘numpy.ndarray’ não pode ser chamado
Como corrigir: TypeError: o objeto ‘numpy.float64’ não pode ser chamado
Como corrigir: erro de tipo: objeto de string ou bytes esperado

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *