Python 熊猫:检查柱中的不连续性
我有以下数据Python 熊猫:检查柱中的不连续性,python,pandas,Python,Pandas,我有以下数据 index date hour value 0 2020-01-01 0 0 1 2020-01-01 1 0 2 2020-01-01 2 0 3 2020-01-01 3 1 4 2020-01-01 4 0 5 2020-01-01 5 0 6
index date hour value
0 2020-01-01 0 0
1 2020-01-01 1 0
2 2020-01-01 2 0
3 2020-01-01 3 1
4 2020-01-01 4 0
5 2020-01-01 5 0
6 2020-01-01 6 0
7 2020-01-01 7 1
.. ... .. ..
742 2020-01-31 21 1
743 2020-01-31 22 1
744 2020-01-31 23 1
在上面的数据中,我想看看对于给定的24小时窗口,如果值
为1,并且前3小时和后3小时不是1,则将其替换为0。例如,在上面的索引中,
3的值将替换为0,因为前3个值和后3个值都是0。我可以使用
np.where
,但不确定如何检查前3行和后3行的值。不使用。apply()
这很慢。可以使用.sum()
并与中心进行比较
before = after = 3
mask = df["value"].rolling(window=(before+after) + 1, center=True).sum()==df["value"]
df.loc[mask, "value"] = 0
没有。apply()
,速度很慢。可以使用.sum()
并与中心进行比较
before = after = 3
mask = df["value"].rolling(window=(before+after) + 1, center=True).sum()==df["value"]
df.loc[mask, "value"] = 0
1.请始终以可复制粘贴代码的形式发布数据或数据帧。2.请提供最少的输入和所需的相应输出。3.你考虑了吗?谢谢Gulzar,我会记住这一点的。1。请始终以可复制粘贴代码的形式发布数据或数据帧。2.请提供最少的输入和所需的相应输出。3.你考虑了吗?谢谢Gulzar,我会记住的。好!我熟悉
滚动
,但不知道它也可以用于接下来的n行。如果我没有错的话,center=True
这是可能的,对吗?没错:)很好!我熟悉滚动
,但不知道它也可以用于接下来的n行。如果我没有错的话,center=True
这是可能的,对吗?没错:)