熊猫:扩展蒙版以设置区域

时间:2017-07-20 13:31:02

标签: python pandas

我在“python pandas”中有一个布尔掩码,我想在其中加宽(涂抹?)每个“True”样本。假设我有以下内容:

import pandas
data = pandas.DataFrame({'col1': [False, True, False, False, False, False, True, False, False, False]})

所以“真实”面具看起来像:

mask = data[data.col1 == True]
>>> mask
   col1
1  True
6  True

我想:

>>> mask
   col1
0  True
1  True
2  True
5  True
6  True
7  True

如何将相邻指数设置为(比方说)1到“真”的距离?我可以写一个for循环,没有东西。但这感觉不对。

提示?提示?关键字?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以这样做的一种方法是使用rollingmax

n=1
window = n*2 + 1
data.col1.rolling(window, center=True, min_periods=1).max().astype(bool)

输出:

0     True
1     True
2     True
3    False
4    False
5     True
6     True
7     True
8    False
9    False
Name: col1, dtype: bool

print(mask)

   col1
0  True
1  True
2  True
5  True
6  True
7  True