Convierta una cadena que contiene un precio con espacio después de miles para que flote en la columna pandas
Tengo una columna que contiene precios con una moneda. Quiero convertir estos precios a flotadores. El problema aquí es que estos precios contienen espacios después de miles.
Mi marco de datos inicial:
import numpy as np
import pandas as pd
prices = pd.Series(['239,00$','1 345,00$','1,00$','4 344,33$'])
df = pd.DataFrame(prices,columns = ["prices"])
print df
prices
0 239,00$
1 1 345,00$
2 1,00$
3 4 344,33$
El resultado que quiero obtener es una columna de marco de datos donde mis valores son flotantes y no tienen espacios:
prices
0 239.00
1 1345.00
2 1.00
3 4344.33
Intenté usar replace
la función para eliminar espacios en una cadena pero no parece funcionar. ¿Alguna idea de cómo puedo llegar a ese resultado?
Aceptado
Elimine los caracteres que no sean un dígito o una coma ( [^\d,]
) y luego reemplácelos ,
con .
:
df.prices.str.replace('[^\d,]', '').str.replace(',', '.').astype(float)
0 239.00
1 1345.00
2 1.00
3 4344.33
Name: prices, dtype: float64