Python - получить группу с наибольшим значением столбца - PullRequest
0 голосов
/ 09 июля 2019

У меня есть кадр данных со следующей структурой:

Col_A   Col_B   Col_C   Cold_D  Score
A   B   C   1   1
A   B   C   NULL    4
A   B   C   10  3

Я хочу извлечь только строку с наивысшим значением оценки, сгруппированную Col_A, Col_B и Col_C.

В основном мне нужночтобы извлечь это:

Col_A   Col_B   Col_C   Cold_D  Score
A   B   C   NULL    4

Я пытался с этим кодом:

df = df.groupby(['Col_A','Col_B','Col_C'])['Score'].nlargest(1)

Но я получаю следующую ошибку:

builtins.KeyError: 'Score'

Я был подтвержден, иЯ получил столбец оценки на моем DF.

Что я делаю не так?Как я могу сделать вышеупомянутый фильтр?

Спасибо!

1 Ответ

2 голосов
/ 09 июля 2019

Использование drop_duplicates

df.sort_values('Score').drop_duplicates(['Col_A','Col_B','Col_C'],keep='last')
Out[113]: 
  Col_A Col_B Col_C  Cold_D  Score
1     A     B     C     NaN      4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...