【发布时间】:2021-09-08 01:32:43
【问题描述】:
我有一个不同 ID 的数据框,其中一列是固定值,另一列是可变的,按日期更改。我想查看每个 ID 并创建一个新列来标记它是否已达到固定值,并创建另一个列来计算达到该值所需的时间。
| ID | Date | Fixed Value | Varible Value |
|---|---|---|---|
| 1 | 2021-01 | 500 | 10 |
| 1 | 2021-02 | 500 | 200 |
| 1 | 2021-03 | 500 | 300 |
| 1 | 2021-04 | 500 | 400 |
| 1 | 2021-05 | 500 | 500 |
| 2 | 2021-01 | 400 | 5 |
| 2 | 2021-02 | 400 | 20 |
| 2 | 2021-03 | 400 | 70 |
| 2 | 2021-04 | 400 | 400 |
| 2 | 2021-05 | 400 | 500 |
| 3 | 2021-01 | 300 | 10 |
| 3 | 2021-02 | 300 | 300 |
| 3 | 2021-03 | 300 | 500 |
| 3 | 2021-04 | 300 | 600 |
| 3 | 2021-05 | 300 | 700 |
我想要的是这样的:
| ID | Date | Fixed Value | Varible Value | Reached_Fixed_Value | Time_To_Reach |
|---|---|---|---|---|---|
| 1 | 2021-01 | 500 | 10 | No | na |
| 1 | 2021-02 | 500 | 200 | No | na |
| 1 | 2021-03 | 500 | 300 | No | na |
| 1 | 2021-04 | 500 | 400 | No | na |
| 1 | 2021-05 | 500 | 500 | Yes | 5 months |
| 2 | 2021-01 | 400 | 5 | No | na |
| 2 | 2021-02 | 400 | 20 | No | na |
| 2 | 2021-03 | 400 | 70 | No | na |
| 2 | 2021-04 | 400 | 400 | Yes | 4 months |
| 2 | 2021-05 | 400 | 500 | Yes | 4 months |
| 3 | 2021-01 | 300 | 10 | No | na |
| 3 | 2021-02 | 300 | 300 | Yes | 2 months |
| 3 | 2021-03 | 300 | 500 | Yes | 2 months |
| 3 | 2021-04 | 300 | 600 | Yes | 2 months |
| 3 | 2021-05 | 300 | 700 | Yes | 2 months |
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
你可能需要 groupby 和 cumsum ...你应该尝试一些东西,一旦你付出了一些努力就回来(也许你已经这样做了,在这种情况下你应该发布你的尝试以及为什么它错了)