python - 获取每个不同列值的所有唯一值
问题描述
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'])]
我的代码应该如何根据我的需要更改?
解决方案
你可以试试这个
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')
推荐阅读
- c# - 如何自动重叠位于不同位置/比例/旋转的 2 个相等对象?
- html - 如何将 iframe 居中并使其响应移动设备?
- excel - Excel:CountIf 单元格以某些数字开头
- view - 在 Select 中使用 UDF 从视图中刷新物化视图
- python - 如何使用 python itertools 组合打印变量的名称
- javascript - 在html中输出时如何删除[]数组?
- python - 程序查找除数相加时等于原始数的数
- angular - 更改项目数组时 cdk-virtual-scroll-viewport 出错
- python - 如何删除行和列的索引名称?(轴=0 & 轴=1)
- r - 任何时候只为 10 号之前的日期生成 NA 日期