微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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 举报,一经查实,本站将立刻删除。