内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
我有一个数据文件,其中包含根据两列(A和B)重复的值:
A B C 1 2 1 1 2 4 2 7 1 3 4 0 3 4 8
我希望删除重复项,保持行的最大值在C列中。这将导致:
A B C 1 2 4 2 7 1 3 4 8
我不知道该怎么做。我应该用drop_duplicates()
还有别的吗?
您可以通过以下方式使用组来完成此任务:
c_maxes = df.groupby(['A', 'B']).C.transform(max) df = df[df.C == c_maxes]
另一种方法是drop_duplicates
df.sort('C').drop_duplicates(subset=['A', 'B'], take_last=True)
不确定哪种方法更有效,但我想第一种方法并不涉及排序。