从底部开始的第一个最长的零子序列之后的子数据帧

问题描述

Dataframe df 有两列 - timestampqtydf 按唯一 timestamp 的升序排序。在 timestamp 列中第一次出现 >= n 连续零后,从底部的第一个 qty 开始查找子数据框。

例如

>>> import pandas as pd
>>> from datetime import datetime
>>> df = pd.DataFrame({'timestamp':[datetime(2018,12,1),datetime(2019,4,5,8,datetime(2020,9,10,11,11),datetime(2021,1,1)],'qty':[187.11,340,2947.65,15,23]})
>>> df
    timestamp      qty
0  2018-12-01   187.11
1  2019-04-01   340.00
2  2019-05-01     0.00
3  2019-08-01     0.00
4  2019-12-01  2947.65
5  2020-04-01     0.00
6  2020-08-01     0.00
7  2020-09-01     0.00
8  2020-10-01     5.00
9  2020-11-01     0.00
10 2020-11-11     0.00
11 2020-12-01    15.00
12 2020-12-11     0.00
13 2021-01-01    23.00

期望的输出
在这种情况下,对于 n=3输出是从 2020-10-01:

开始的数据帧
    timestamp      qty
8  2020-10-01     5.00
9  2020-11-01     0.00
10 2020-11-11     0.00
11 2020-12-01    15.00
12 2020-12-11     0.00
13 2021-01-01    23.00

对于 n=2输出是从 2020-12-01 开始的数据帧:

    timestamp      qty
11 2020-12-01    15.00
12 2020-12-11     0.00
13 2021-01-01    23.00

对于 n=1输出是从 2021-01-01 开始的数据帧:

    timestamp      qty
13 2021-01-01    23.00

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)