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.

Convirtiendo el valor de la columna a ASCII

Tengo un marco de datos con columnas, digamos v1~v4

_NOMBRE _MARCA DE TIEMPO v0 v1 v2 v3 v4
BRAKE_LH 17-11-2021 22:50:43 13896 8262 12339 13110 13107
BRAKE_LH 17-11-2021 22:51:34 13896 8262 12339 13110 13107
BRAKE_LH 17-11-2021 22:51:35 13896 8262 12339 13110 13107
BRAKE_LH 17-11-2021 22:51:36 13896 8262 12339 13110 13107
BRAKE_LH 17-11-2021 22:51:37 0 0 0 0 0

Si quiero hacer la siguiente función para las columnas v1~v4

df['v0'] = df['v0'].apply(lambda x: chr(round(x / 256)) + chr(x % 256)).apply(lambda x: x[::-1])
df['v1'] = df['v1'].apply(lambda x: chr(round(x / 256)) + chr(x % 256)).apply(lambda x: x[::-1])
df['v2'] = df['v2'].apply(lambda x: chr(round(x / 256)) + chr(x % 256)).apply(lambda x: x[::-1])
df['v3'] = df['v3'].apply(lambda x: chr(round(x / 256)) + chr(x % 256)).apply(lambda x: x[::-1])
df['v4'] = df['v4'].apply(lambda x: chr(round(x / 256)) + chr(x % 256)).apply(lambda x: x[::-1])

En algunos casos, las columnas van más allá de las 4 columnas, digamos 40 o 100 columnas

¿Hay una manera sencilla de aplicarlo a todas las columnas, excepto a las columnas _NOMBRE y _MARCA DE TIEMPO?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes usar un bucle for para aplicar la función a todas las columnas excepto _NAME y _TIMESTAMP. Puedes usar el atributo .columns del data frame para obtener una lista de todos los nombres de las columnas, y luego iterar a través de la lista y aplicar la función a cada columna. Por ejemplo:

    for col in df.columns:
        if col not in ['_NAME', '_TIMESTAMP']:
            df[col] = df[col].apply(lambda x: chr(round(x / 256)) + chr(x % 256)).apply(lambda x: x[::-1])
    

Comments are closed.