python - 如何在pandas中标记 'duplicated sequence'?

标签 python pandas duplicates

我想标记列表中的重复序列。

例如:

(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).  

如何仅标记“重复序列”?

最佳答案

您需要shiftcumsum对于适用的帮助器系列 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/

相关文章:

python - 对一列元组使用 df.isin() 函数 | Pandas

MYSQL 使用 SELECT DISTINCT 重复记录

Python合并两个CSV文件

python - PyInstaller 不包含导入

python - 在 pandas 数据框中,计算某一列中某个条件发生的次数?

python - 在 pandas 中提取特定值后的文本

algorithm - 在列表中找到多个可能的重复整数中的任何一个

java - 巧妙地迭代

python - 如何在 Python 中导入 caffe 模块?

python - SQLAlchemy 创建动态表和列