Calcular la diferencia entre la fila actual y la última fila que cumpla con una condición.
Tengo un dataframe de pandas que se ve así.
Código:
time value group
0 1 12 1
1 2 14 1
2 3 15 2
3 4 15 1
4 5 18 2
5 6 20 1
6 7 19 2
7 8 24 2
Ahora quiero calcular la diferencia entre el grupo 1 y el grupo 2 para los últimos valores. Es decir, en cada fila quiero mirar el valor más reciente para el grupo 1 y el grupo 2 y calcular el valor del grupo 1 – valor del grupo 2.
En el ejemplo, la salida debería verse así:
Código:
time value group diff
0 1 12 1 0
1 2 14 1 0
2 3 15 2 -1
3 4 15 1 0
4 5 18 2 -3
5 6 20 1 2
6 7 19 2 1
7 8 24 2 -4
La única función que he encontrado hasta ahora es pd.diff(), pero no satisface mis necesidades. Así que agradecería mucho algo de ayuda aquí. ¡Gracias!
davy.ai
Para calcular la diferencia deseada entre los últimos valores de los grupos 1 y 2, primero podemos crear una tabla dinámica para obtener el último valor de cada grupo. Luego, podemos fusionar esta tabla dinámica con el dataframe original y calcular la diferencia entre los últimos valores del grupo 1 y el grupo 2 utilizando una función lambda.
Aquí está el código para lograr esto:
Esto nos dará la salida deseada: