El profe escribió entre las transformaciones lo siguiente: . replace(",","") para eliminar las comas pero eso no modificaría también los números ? Creo que convertiría 12,00 a 1200 por ejemplo.
El profe escribió entre las transformaciones lo siguiente: . replace(",","") para eliminar las comas pero eso no modificaría también los números ? Creo que convertiría 12,00 a 1200 por ejemplo.
Justo venía a preguntar sobre lo mismo, creo que el criterio correcto sería :
datos["precio"] = datos["precio"].apply( lambda x: x.replace("$", "").replace(",", ".").strip())
Esto debería cambiar cada "," por un ".", lo que lo dejaría en el formato utilizado.
Espero tengamos una confirmación de esta información, saludos.
Según la IA y las pruebas que hice sí se trata de un error.
Estuve revisando, y según lo que vi en los desafíos que van aparte, existiría un problema si el valor es el siguiente:
1,000,00
En ese caso, reenplazaría ambas "," por un "." lo que haría imposible luego transformar al formato int64
o float64
Si tienes alguna solución a esto, sería bueno que me la hicieras saber para que vayamos aprendiendo juntos.
Saludos.
Creo que se debe usar regex. por ejemplo:
datos = pd.DataFrame({ 'valor': ['1,000,00', '2,500,50', '3,750,75'] })
datos['valor'] = datos['valor'].str.replace(r'(,)(?=\d{3},)', '', regex=True)
datos['valor'] = datos['valor'].str.replace(',', '.')
datos['valor'] = datos['valor'].astype('float')
datos['valor'] = datos['valor'].astype(np.float64)
print(datos)