Python 熊猫:扩展遮罩以设置区域
我在“python熊猫”中有一个布尔掩码,我想在其中加宽(涂抹?)每个“真”样本。假设我有以下几点:Python 熊猫:扩展遮罩以设置区域,python,pandas,Python,Pandas,我在“python熊猫”中有一个布尔掩码,我想在其中加宽(涂抹?)每个“真”样本。假设我有以下几点: 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
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到“True”的距离?我可以写一个for循环,什么都没有。但这感觉不对
暗示?提示?关键词
谢谢 一种方法是使用
rolling
和max
:
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
真聪明。:)@谢谢。哇,很酷,总是学习新东西。(您在代码中留下了一个打字错误(astype))谢谢。修正了打字错误。再次感谢你。精彩的解决方案!