我的数据框的前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
我想检查colB
25个连续行中的值是否大于30000
。如果是,则返回开始的第一个date
,否则返回下一个连续25行大于阈值的日期
我已通过检查来解决此问题:
k = df[df['colB']>30000]
str(k.iloc[0].date.date())
但是,这只返回那些只超过30000
的行的第一个日期,其中包括跳过行并保持那些令人满意的行。我不打算跳过这几行。我需要每一行都大于阈值,并取满足条件的第一个date
您可以使用滚动和移动:
相关问题 更多 >
编程相关推荐