问题描述
假设我们有 “表1” 这样一个数据,需要删除A列的重复行,同时保留重复行中B列最大值所在的行,即需要得到 “表2” 的结果。
table = pd.DataFrame({"A":["甲", "乙", "甲", "甲"],
"B":[2,2,3,4]})
table
表1:
表2:
解决方案1
- 对 B 列进行降序排序;
- 删除 A 列的重复的行,但保留第一次出现的行。
- 重置索引
table.sort_values("B", ascending=False).drop_duplicates("A", keep='first').reset_index(drop=True)
解决方案2
通过 groupby
的方法实现。
table.groupby(['A'])['B'].max()