问题描述
假设我们有 “表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()