¿Cómo sumar valores en grupo para cada valor en otra columna?
Tengo un dataframe:
id life_day value
a1 1 10
a1 2 20
a1 3 10
a1 4 5
a1 5 5
a1 6 1
b2 1 7
b2 3 11
b2 4 10
b2 5 20
Quiero sumar los valores para cada id y life_day. Entonces, el resultado deseado es:
id life_day value
a1 1 10
a1 2 30
a1 3 40
a1 4 45
a1 5 50
a1 6 51
b2 1 7
b2 3 18
b2 4 28
b2 5 48
¿Cómo se hace eso? Intenté df.groupby('id').agg({'value': 'sum'})
pero da resultados incorrectos. No suma.
davy.ai
Para lograr el resultado deseado, se puede agrupar el dataframe por ambas columnas ‘id’ y ‘life_day’ utilizando la función
groupby
y luego aplicar la funcióncumsum
a la columna ‘value’ del dataframe agrupado para obtener la suma acumulativa. El código para esto es el siguiente:Esto actualizará la columna ‘value’ del dataframe original con las sumas acumuladas para cada combinación de ‘id’ y ‘life_day’.
El dataframe resultante será el deseado: