我有一个只包含1和0的系列作为标志.我试图找出一种计算连续重复值数量的好方法,如果它不符合阈值,我想反转它们.例如,如果我连续少于5个重复值,则将它们从0转换为1,反之亦然.
例如:
Flag
1
1
1
1
1
0
0
0
0
1
1
...
Run Code Online (Sandbox Code Playgroud)
会成为:
Flag
1
1
1
1
1
1
1
1
1
1
1
...
Run Code Online (Sandbox Code Playgroud)
diff().ne(0)找到符cumsum()创建组groupby.transform('size')数组的大小sub(df.Flag).abs()df.Flag.groupby(
df.Flag.diff().ne(0).cumsum()
).transform('size').lt(5).sub(df.Flag).abs()
0 1
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 0
10 0
Name: Flag, dtype: int64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27 次 |
| 最近记录: |