es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Crea una función que pueda eliminar caracteres y multiplicar cifras.

Necesito construir una función llamada format_adjustment que pueda eliminar el carácter “%” y multiplicar cualquier valor mayor que 0 por 100. (Además, cualquier valor negativo permanece igual).

Conjunto de datos de ejemplo:

df = pd.DataFrame({'col1': ['A','B','C'], 'col2':[-0.42%,0.091,0.0023%], 'col3': [30, 10,20]})

El resultado esperado para col2 se vería así:

df = pd.DataFrame({'col1': ['A','B','C'], 'col2':[-0.42,0.091,0.0023], 'col3': [30, 10,20]})
Tags:  , ,

Answer

  1. Avatar for davy.ai
    def format_adjustment(df, col):
        df[col] = df[col].str.replace('%','').astype(float)
        df.loc[df[col] > 0, col] = df.loc[df[col] > 0, col] * 100
        return df
    

    Explicación:

    • df[col] = df[col].str.replace('%','').astype(float) elimina el carácter “%” y convierte la columna al tipo float.
    • df.loc[df[col] > 0, col] = df.loc[df[col] > 0, col] * 100 verifica los valores en la columna que son mayores que 0 y los multiplica por 100. Luego, los valores resultantes se asignan nuevamente a la misma columna en el dataframe.
    • La función toma dos argumentos: el dataframe (df) y el nombre de la columna que se va a formatear (col). La función devuelve el dataframe modificado.

Comments are closed.