我有一列数据,其中值的范围为0、1和2。如果这些值在 n 行内没有重复出现,我想要将所有 1 和 2 的实例替换为值为 0。如果这些值在 n 行内重复出现,我想保留它们。例如,当 n=4 时:
df = pd.DataFrame({'data': [1,0,1,2,0,0,0,1,0,2,2,2,2,2,2,0,1,0,1,0,2],
'desired': [0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0]})
data desired
0 1 0
1 0 0
2 1 0
3 2 0
4 0 0
5 0 0
6 0 0
7 1 0
8 0 0
9 2 2
10 2 2
11 2 2
12 2 2
13 2 2
14 2 2
15 0 0
16 1 0
17 0 0
18 1 0
19 0 0
20 2 0
预期的功能是基本上“过滤”基础数据中值的简短变化。我想能够声明必须连续多少个值才能保留基础数据,包括所有高于和低于'n'的值。(如果n = 4并且有6个连续值,我想要全部6个,而不仅仅是超过4的2个值。)在Pandas中是否有一种向量化的方法可以实现这一点?