我有一个具有以下结构的数据框:
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上获得了分数栏。
我做错了什么?如何制作上述过滤器?
谢谢!
答案 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