Получить всю строку с максимальным значением c, Pandas - PullRequest
0 голосов
/ 08 апреля 2020
neighbourhood      room_type           value
Agios Loukas       Entire home/apt      69
                   Private room         11
                   Shared room           1
Agios Nikolaos     Entire home/apt     193
                   Private room         33
Akadimia Platonos  Entire home/apt      45
                   Private room         10
                   Shared room           1 

Как лучше всего взять всю строку с максимальным значением. Например я хочу взять

Agios Loukas       Entire home/apt      69 
Agios Nikolaos     Entire home/apt     193
Akadimia Platonos  Entire home/apt      45

Спасибо и извините за мой английский sh

Ответы [ 2 ]

3 голосов
/ 08 апреля 2020

Я полагаю, что вам нужно;

Любой групповой на первом уровне и idxmax с df.loc[]

out = df.loc[df.groupby(level=0)['value'].idxmax()]
print(out)

                                   value
neighbourhood     room_type             
Agios Loukas      Entire home/apt     69
Agios Nikolaos    Entire home/apt    193
Akadimia Platonos Entire home/apt     45

Или:

groupby+transform с макс и затем оператором равенства для компиляции и выбора строк

out1 = df[df['value'].eq(df.groupby('neighbourhood')['value'].transform('max'))]
print(out1)

                                   value
neighbourhood     room_type             
Agios Loukas      Entire home/apt     69
Agios Nikolaos    Entire home/apt    193
Akadimia Platonos Entire home/apt     45
0 голосов
/ 08 апреля 2020

Используйте .max (), чтобы получить максимальное значение столбца, и поместите его в запрос df.loc [], чтобы получить все строки с этим значением. Как то так:

df.loc[df['value'] == df['value'].max()]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...