Marco de datos de Python selecciona filas en función de los valores máximos en una de las columnas

Tengo un dataframe en python (muchas filas, 2 columnas). Quiero modificar el DF con un valor único en la columna 1 basado en el valor más grande en la columna 2 (la columna 2 se ordena en orden ascendente si eso ayuda). Probablemente podría escribir un bucle, pero preferiría una solución de una o dos líneas. Gracias.

Ex.

ID Value 100 11 100 14 100 16 200 10 200 20 200 30 300 45 400 0 400 25 

resultado deseado

 100 16 200 30 300 45 400 25 

Desea groupby en la columna ‘a’ y luego obtener el índice del valor máximo utilizando idxmax y usar estos índices para indexar el origen df:

 In [12]: df.loc[df.groupby('a')['b'].idxmax()] Out[12]: ab 2 100 16 5 200 30 6 300 45 8 400 25 

En caso de que no necesite el índice original pero solo los valores más altos por ID , puede usar groupby y max :

 print(df.groupby("ID").max()) Value ID 100 16 200 30 300 45 400 25