【发布时间】:2021-04-05 08:11:16
【问题描述】:
我需要检查当前值是否高于接下来的两个和前三个值。否则,它会通过前一个数字。
例如:
| date | pos |
|---|---|
| 2007-01-01 | 3.0 |
| 2007-01-02 | 5.0 |
| 2007-01-03 | 6.0 |
| 2007-01-10 | 11.0 |
| 2007-01-11 | 9.0 |
| 2007-01-20 | 8.0 |
| 2007-01-21 | 10.0 |
| 2007-01-22 | 13.0 |
| 2007-01-23 | 4.0 |
| 2007-01-27 | 2.0 |
| 2007-01-28 | 1.0 |
| 2007-01-29 | 2.0 |
到
| date | pos |
|---|---|
| 2007-01-01 | NA |
| 2007-01-02 | NA |
| 2007-01-03 | NA |
| 2007-01-10 | 11.0 |
| 2007-01-11 | 11.0 |
| 2007-01-20 | 11.0 |
| 2007-01-21 | 11.0 |
| 2007-01-22 | 13.0 |
| 2007-01-23 | 13.0 |
| 2007-01-27 | 13.0 |
| 2007-01-28 | 13.0 |
| 2007-01-29 | 13.0 |
我知道如何分别进行向后滚动和向前滚动。但不知道如何同时做到这一点。
【问题讨论】:
-
看起来您只想为第一行填充
NA。它是否正确?请仔细检查。 -
你需要什么输出?你能提供一些例子吗?如果价值更高或更低怎么办?你期待什么结果?
-
发布时表已更改。顺便说一句,我改变了它
-
那么2007-01-21是11的逻辑是什么?
-
@DanailPetrov,如果条件为假,它应该使用以前的数字
标签: python python-3.x pandas rolling-computation