python - dtypes - type of pandas columns
Convertir moneda a flotar(y los paréntesis indican importes negativos) (2)
Tengo un df con moneda:
df = pd.DataFrame({''Currency'':[''$1.00'',''$2,000.00'',''(3,000.00)'']})
Currency
0 $1.00
1 $2,000.00
2 (3,000.00)
Quiero convertir el tipo de ''Moneda'' en flotante pero tengo problemas con la cadena de paréntesis (que indica una cantidad negativa). Este es mi código actual:
df[[''Currency'']] = df[[''Currency'']].replace(''[/$,]'','''',regex=True).astype(float)
que produce un error:
ValueError: could not convert string to float: (3000.00)
Lo que quiero como dtype float es:
Currency
0 1.00
1 2000.00
2 -3000.00
Solo agregue )
al comando existente, y luego convierta (
a -
para que los números entre paréntesis sean negativos. Luego conviértalos a flotar.
(df[''Currency''].replace( ''[/$,)]'','''', regex=True )
.replace( ''[(]'',''-'', regex=True ).astype(float))
Currency
0 1
1 2000
2 -3000
Esto es si desea asegurarse de que se agregue al DataFrame, especialmente si tiene muchas columnas que tiene el DataFrame promedio para que pueda trabajar en él.
df[''Currency'']=(df[''Currency''].replace( ''[/$,)]'','''', regex=True ) .replace( ''[(]'',''-'', regex=True ).astype(float))