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 - 实现非阻塞等待的最佳方式?

python - 将字节字符串读取为 xls 文件

python - 在多个条件下的 For 循环中过滤 pandas DataFrame 的更快方法

JAVA - 如何避免 MySQL 中的值重复?

python - 从 pydantic 对象列表中删除重复项

python - 使用 openpyxl 将工作表附加到现有的 excel 文件

python - 奇怪的 UTF-8 单行解释器错误

python - 在两个 Numpy 数组之间创建 Pandas Dataframe,然后绘制散点图

python - 如何使用 map 多处理 Pandas 数据框?

postgresql - 导入并覆盖重复行