我想标记列表中的重复序列。
例如:
(1,1,1,0,2,3,2,4,2)
我的预期结果是:
(True,True,True,False,False,False,False,False,False)
我尝试了pandas.DataFrame.duplicate(keep=False)
,但它将“2”标记为重复:
(True,True,True,False,True,False,True,False,True).
如何仅标记“重复序列”?
最佳答案
您需要shift
与 cumsum
对于适用的帮助器系列
duplicated
:
s = pd.Series([1,2,1,1,2,3,3,2,4,2,2,1])
print (s.ne(s.shift()).cumsum().duplicated(keep=False).values)
[False False True True False True True False False True True False]
详细信息:
print (s.ne(s.shift()).cumsum())
0 1
1 2
2 3
3 3
4 4
5 5
6 5
7 6
8 7
9 8
10 8
11 9
dtype: int32
关于python - 如何在pandas中标记 'duplicated sequence'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46845807/