Agregue una columna llena de valores que correspondan al valor máximo en otra columna para cada valor en la tercera columna.
Tengo este dataframe
state in out
0 case_1 1 -5
1 case_2 0 -1
2 case_2 -1 8
3 case_1 -2 5
4 case_2 -2 1
Necesito crear una columna adicional con los valores de “in” que corresponden a los valores máximos en “out” para cada “state” (case_1, case_2).
state in out new
0 case_1 1 -5 -2
1 case_2 0 -1 -1
2 case_2 -1 8 -1
3 case_1 -2 5 -2
4 case_2 -2 1 -1
davy.ai
Para lograr esto, podemos agrupar el dataframe por la columna “state” usando la función
groupby()
y luego aplicar la funciónidxmax()
a la columna “out” para obtener el índice del valor máximo en cada grupo. Luego podemos extraer el valor correspondiente a “in” usando la funciónloc[]
y almacenarlo en una nueva columna llamada “new”. El código para esto sería:Esto nos dará el dataframe deseado con una columna adicional llamada “new” que contiene los valores de “in” correspondientes a los valores máximos en “out” para cada “state”.