Python-从最高列值中获取组

时间:2019-07-09 15:42:14

标签: python pandas group-by

我有一个具有以下结构的数据框:

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 个答案:

答案 0 :(得分:2)

使用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