Reemplace valores en una columna basado en condiciones (valor máximo) de múltiples columnas en pandas.
Tengo un conjunto de datos que ya he filtrado de esta manera:
En esta selección del dataframe, quiero reemplazar el valor de la columna “max” y “critical”, porque la columna “max” está equivocada, debería mostrar el valor máximo del contaminante en ese día (‘pm10’, ‘so2’, ‘co’, ‘o3’, ‘no2’) y la columna “critical” debería mostrar el nombre del contaminante máximo en ese día.
El resultado deseado es el siguiente:
tanggal stasiun pm10 so2 co o3 no2 max critical categori
3515 2020-12-01 DKI1 (Bunderan HI) 22 17 4 19 8 22 PM10 BAIK
3516 2020-12-02 DKI1 (Bunderan HI) 25 18 4 28 7 28 o3 BAIK
3518 2020-12-04 DKI1 (Bunderan HI) 39 29 8 52 17 52 o3 SEDANG
3520 2020-12-06 DKI1 (Bunderan HI) 31 22 7 30 9 31 pm10 BAIK
3521 2020-12-07 DKI1 (Bunderan HI) 25 22 6 18 9 25 pm10 BAIK
davy.ai
Para reemplazar el valor de las columnas “max” y “critical” en el dataframe seleccionado, podemos usar el método
apply
junto con una función lambda que calcule el valor máximo del contaminante y el nombre correspondiente del contaminante para cada fila.Aquí está el código para lograr el resultado deseado:
El dataframe resultante tendrá los valores deseados en las columnas “max” y “critical”: