在列中删除重复值,具体取决于另一个值

时间:2020-04-14 18:45:57

标签: python pandas dataframe

我不确定解决我的问题的最佳方法。假设我有一个数据框

id    decision
1     Yes
3     No
2     Yes
2     No
4     No
4     No

我想要做的是基于id列删除重复项,因此每种id类型只有一个实例。但是,对于具有多个实例的id,如果决策中的任何值为“是”,则在删除重复项之后,剩下的一个决策将为“是”。

因此,在这种情况下,输出看起来像这样,因为ID匹配2的决策中至少有一个是“是”。

id    decision
1     Yes
3     No
2     Yes
4     No

我一直想使用drop_duplicates(),但是我决定根据第一个或最后一个实例来保留哪个重复项,因为它们的顺序不同。

有帮助吗?

2 个答案:

答案 0 :(得分:1)

IIUC

s=df.sort_values('decision').drop_duplicates('id',keep='last').sort_index()
   id decision
0   1      Yes
1   3       No
2   2      Yes
5   4       No

答案 1 :(得分:0)

类似的事情可能会起作用(尽管它不会保留顺序)-

driver. close()