我有一个只有二进制值的熊猫系列
0
0 1
1 0
2 0
3 0
4 1
5 0
6 1
7 0
8 0
9 1
10 0
11 1
12 0
13 1
14 0
我想在系列中隐藏它为零的值,并且它周围有一个,即基本上将 1、0、1 更改为 1、1、1。
我需要的输出是:
0 1
1 0
2 0
3 0
4 1
5 1
6 1
7 0
8 0
9 1
10 1
11 1
12 1
13 1
14 0
我在这里尝试的是创建一个 3 的滚动窗口并检查这些值是否是我需要的。有没有更好的方法来解决这个问题?
>>> window = df.rolling(3, center=True)
>>> (df[0] | window.apply(lambda x: 1 if (x == [1,0,1]).all() else 0)[0].fillna(0)).astype(int)
注意:我也尝试过移位功能。