## Question

Asked By – richie

Using Python Pandas I am trying to find the `Country`

& `Place`

with the maximum value.

This returns the maximum value:

```
data.groupby(['Country','Place'])['Value'].max()
```

But how do I get the corresponding `Country`

and `Place`

name?

**Now we will see solution for issue: Find maximum value of a column and return the corresponding row values using Pandas **

## Answer

Assuming `df`

has a unique index, this gives the row with the maximum value:

```
In [34]: df.loc[df['Value'].idxmax()]
Out[34]:
Country US
Place Kansas
Value 894
Name: 7
```

Note that `idxmax`

returns index *labels*. So if the DataFrame has duplicates in the index, the label may not uniquely identify the row, so `df.loc`

may return more than one row.

Therefore, if `df`

does not have a unique index, you must make the index unique before proceeding as above. Depending on the DataFrame, sometimes you can use `stack`

or `set_index`

to make the index unique. Or, you can simply reset the index (so the rows become renumbered, starting at 0):

```
df = df.reset_index()
```

This question is answered By – unutbu

**This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 **