variable type dtypes dtype columns column astype python pandas currency

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))