You can sort the dataFrame by count and then remove duplicates. I think it's easier: df.sort_values('count', ascending=False).drop_duplicates(['Sp','Mt'])