首页 > 解决方案 > 获取每个不同列值的所有唯一值

问题描述

1.输入:我们有一个数据框

ID name
1   a
1   b
1   a
2   c
3   d

2.现在我想为每个“ID”值获取所有唯一的“名称”值预期结果:

ID name
1   a
1   b
2   c
3   d

我尝试的代码只获得了 name 的第一个值,但我也希望每个 ID 都有它:

df.loc[~df.duplicated(keep='first', subset=['name'])]

我的代码应该如何根据我的需要更改?

标签: pythondataframedictionary

解决方案


你可以试试这个

df.drop_duplicates(subset='name', keep="last")

或者

df.sort_values('name', ascending=False).drop_duplicates('ID').sort_index()

要删除基于多列的重复项:

df = df.drop_duplicates(['col_name1','col_name2','col_name3'], keep='last')

推荐阅读