【发布时间】:2020-04-27 11:42:31
【问题描述】:
我有一组集群数据。每个集群包含一组项目,示例如下:
集群 1) (1,1), (1,2)
簇 2) (2,2),(2,3),(2,4),(2,5)
集群 3) (3,1),(3,2),(3,3)
集群 4) (4,3),(4,4),(4,6),(4,7)
import pandas as pd
d = {'ID': [1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4], 'Item': [1, 2, 2, 3, 4, 5, 1, 2, 3, 3, 4, 6, 7]}
df = pd.DataFrame(data=d)
ID Item
1 1
1 2
2 2
2 3
2 4
2 5
3 1
3 2
3 3
4 3
4 4
4 6
4 7
考虑到最终数据帧不能包含相同的项目,我需要从最终数据帧中的每个集群中获取至少一个项目,例如所需的输出数据帧:
ID Item
1 1
1 2
2 4
2 5
3 3
4 6
4 7
我已经尝试执行以下操作,它保留了第一次出现,但它给出了以下结果,因为 ID 3 的记录在数据帧中都出现过:
df.drop_duplicates(subset='Item', keep='first')
ID Item
1 1
1 2
2 3
2 4
2 5
4 6
4 7
然后,如果我尝试保持最后一次出现,如下所示,它最终会丢弃 ID 1,因为它的所有项目稍后都出现在数据框中:
df.drop_duplicates(subset='Item', keep='last')
ID Item
2 5
3 1
3 2
4 3
4 4
4 6
4 7
你们对我该怎么做有什么想法吗?
非常感谢。
【问题讨论】:
标签: python python-3.x