fillna
和 limit
参数s[s.replace(0,np.nan).ffill(limit=1).bfill(limit=1).notnull()]
Out[387]:
0 1
1 0
2 2
3 1
4 1
5 0
9 0
10 1
11 2
12 0
15 0
16 4
dtype: int64
安装
s = pd.Series([1, 0, 2, 1, 1, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 4])
shift
的布尔索引来检查一个元素是否为零,并且检查它是否在一组零的中间,同时它不是第一个或最后一个零。s[~((s==0) & (s == s.shift(1)) & (s == s.shift(-1)))]
输出:
0 1
1 0
2 2
3 1
4 1
5 0
9 0
10 1
11 2
12 0
15 0
16 4
dtype: int64