检查特定列的n个连续行是否都大于固定阈值

2024-09-30 18:26:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据框的前20行如下所示:

 date            colA   colB    colC 
35  2020-04-22  500000  26893   500000  
36  2020-04-23  500000  26893   500000  
37  2020-04-24  500000  26893   500000  
38  2020-04-25  500000  65586   500000  
39  2020-04-26  500000  65586   500000  
40  2020-04-27  500000  65586   500000  
41  2020-04-28  500000  28586   500000  
42  2020-04-29  500000  28586   500000  
43  2020-04-30  500000  28586   500000  
44  2020-05-01  500000  28586   500000  
45  2020-05-02  500000  28586   500000
46  2020-05-03  500000  28586   500000  
47  2020-05-04  500000  28586   500000  
48  2020-05-05  500000  28586   500000  
49  2020-05-06  500000  28586   500000  
50  2020-05-07  500000  28586   500000  
51  2020-05-08  500000  28586   500000  
52  2020-05-09  500000  28586   500000  
53  2020-05-10  500000  28586   500000  
54  2020-05-11  500000  28586   500000  

我想检查colB25个连续行中的值是否大于30000。如果是,则返回开始的第一个date,否则返回下一个连续25行大于阈值的日期

我已通过检查来解决此问题:

k = df[df['colB']>30000]
str(k.iloc[0].date.date())

但是,这只返回那些只超过30000的行的第一个日期,其中包括跳过行并保持那些令人满意的行。我不打算跳过这几行。我需要每一行都大于阈值,并取满足条件的第一个date


Tags: 数据dfdate阈值striloccolccolb