I have a Dataframe like this:
name | phase | value |
---|---|---|
BOB | 1 | .9 |
BOB | 2 | .05 |
BOB | 3 | .05 |
JOHN | 2 | .45 |
JOHN | 3 | .45 |
JOHN | 4 | .05 |
FRANK | 1 | .4 |
FRANK | 3 | .6 |
I want to find which entry in column 'phase' has the maximum value in column 'value'.
If more than one share the same maximum value keep the first or a random value for 'phase'.
Desired result table:
name | phase | value |
---|---|---|
BOB | 1 | .9 |
JOHN | 2 | .45 |
FRANK | 3 | .6 |
my approach was:
df.groupby(['name'])[['phase','value']].max()
but it returned incorrect values.