假设我有以下系列。
s = pandas.Series([0, 1, 2, 3, 3, 3, 3, 4, 5, 6, 6, 6, 7, 7])
我可以使用以下方法保留系列中每个重复值的第一个副本:
s[s.duplicated(keep='first')]
以下是保留每个重复数值的最后一个序列的方法:
s[s.duplicated(keep='last')]
然而,我希望做以下几点:
- 仅删除第一个重复项,保留该匹配值的其他重复项,但也保留所有其他不同值的重复项(包括每个组的第一个)。 在上面的示例中,我们将删除第一次出现的
3
,但保留其他3
。保留所有其他重复项。 - 保留第一个重复项,删除匹配值的重复项,但也保留其他不同值的所有重复项。 在上面的示例中,我们将保留第一个
3
,但删除所有其他3
。保留所有其他重复项。
cumsum()
和diff()
来捕获检测到重复项时的变化。我想解决方案会涉及这两个函数,但似乎无法得到完美的解决方案。 我已经通过了太多的真值表......