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