删除具有一个不同值的重复行[重复]
Posted
技术标签:
【中文标题】删除具有一个不同值的重复行[重复]【英文标题】:Remove duplicate rows with one different value [duplicate] 【发布时间】:2019-06-30 09:05:14 【问题描述】:我有一个数据框,其中除了一个值之外有重复的行。我想过滤掉它们,只保留值较高的行。
User_ID - Skill - Year_used
1 - skill_a - 2017
1 - skill_b - 2015
1 - skill_a - 2018
2 - skill_c - 2011
等等
因此,例如需要比较具有 Skill_a 和相同 User_ID 的行,并且只保留最近年份的行。
transform.('count')
仅按 User_ID 为我提供组的行数。
value_counts()
只给我一个无法合并回df的系列。
没有想法?
谢谢
【问题讨论】:
df.drop_duplicates(subset=['User_ID,'Skill'],keep='last')
- 这行得通吗?
【参考方案1】:
一种选择是groupby
Skill
并保留max
Year_used
:
df.groupby(['User_ID','Skill']).Year_used.max().reset_index()
User_ID Skill Year_used
0 1 skill_a 2018
1 1 skill_b 2015
2 2 skill_c 2011
【讨论】:
【参考方案2】:您可以使用drop_duplicates
,通过对列进行排序来保留max
df = df.sort_values('Year_used').drop_duplicates(['User_ID','Skill'], keep='last')
【讨论】:
以上是关于删除具有一个不同值的重复行[重复]的主要内容,如果未能解决你的问题,请参考以下文章