此问题是以下问题的后续问题: What is the best way to check if the last rows of a pandas dataframe meet a condition?
但我在试图修改提供的答案以满足我的需求时遇到了困难
Criteria 01=如果singal
的最后五(5)个连续行(包括最后一行)是1,它将返回1
Criteria 02=如果singal
的最后三(3)个连续行(包括最后一行)为0,则返回0
Criteria 03=在第一次满足条件01或条件02之前,它将返回nan
标准04=其他所有内容都将是最后一个检查值
像这样:
index signal check
0 1 nan
1 1 nan
2 1 nan
3 1 nan
4 1 1
5 1 1
6 0 1
7 0 1
8 0 0
9 0 0
10 0 0
11 1 0
12 0 0
13 1 0
14 0 0
15 1 0
16 1 0
17 1 0
18 1 0
19 1 1
我将感谢任何帮助
谢谢大家!
首先选择dataframe的最后5行并选择列,然后检查所有结果是否等于某个值(即:1表示条件1)
import numpy as np if np.all(df[-5:]['signal'] == 1): print('CRITERIA 01 is met')
然后你可以建立其他类似的标准
您需要另一个
rolling(3)
,如下所示掩码
m2
也可以简化为这样相关问题 更多 >
编程相关推荐