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?
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: