найти максимальное значение в столбце относительно другого столбца - PullRequest
3 голосов
/ 05 марта 2020

у меня ниже фрейма данных: -

input-

  first_name last_name  age  preTestScore  postTestScore
0      Jason    Miller   42             4             25
1      Molly  Jacobson   52            24             94
2       Tina       Ali   36            31             57
3       Jake    Milner   24             2             62
4        Amy     Cooze   73             3             70

я хочу вывод как: -0

Amy 73

так в основном я хочу найти наибольшее значение в столбце возраста, а также имя человека с самым высоким возрастом.

я пытался с pandas, используя группу, как показано ниже: -

df2=df.groupby(['first_name'])['age'].max()

Но с этим я получаю следующий вывод, как показано ниже:

first_name
Amy      73
Jake     24
Jason    42
Molly    52
Tina     36
Name: age, dtype: int64

где, как я только хочу

Эми 73

Как мне go об этом в pandas

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Вы можете получить свой результат с кодом ниже

df.loc[df.age.idxmax(),['first_name','age']]

Здесь, с помощью df.age.idxmax() мы получаем индекс строки с максимальным значением возраста.

Затем с помощью df.loc[df.age.idxmax(),['first_name','age']] мы получаем столбцы 'first_name' & 'age' по этому индексу.

0 голосов
/ 05 марта 2020

Эта строка кода должна выполнить работу

df[df['age']==df['age'].max()][['first_name','age']]

В [['first_name','age']] есть имена столбцов, которые вы хотите получить в результате вывода. Меняй как хочешь. Как и в этом случае, вывод будет

first_name  Age
Amy         73
...