【发布时间】:2021-07-28 21:58:34
【问题描述】:
我有一个包含 3 列的数据框。 ID、日期和建议。推荐是包含每天多个值的列表列。我想为每个 ID 找到与 day d 和 day d+1 匹配的推荐。数据框如下所示。
| ID | Date | Recommendations |
| 1 | 1/1/2021 | [A, B, C] |
| 1 | 1/2/2021 | [A, F, C] |
| 1 | 1/3/2021 | [A, B, D] |
| 2 | 1/13/2021 | [A, B, C] |
| 2 | 1/14/2021 | [A, B, C] |
| 2 | 1/15/2021 | [A, H, C] |
我希望结果如下所示
| ID | Date | Recommendations | Match |
| 1 | 1/1/2021 | [A, B, C] | 2 |
| 1 | 1/2/2021 | [A, F, C] | 1 |
| 1 | 1/3/2021 | [A, B, D] | 0 |
| 2 | 1/13/2021 | [A, B, C] | 3 |
| 2 | 1/14/2021 | [A, B, C] | 2 |
| 2 | 1/15/2021 | [A, H, C] | 0 |
计算应在 ID 级别进行。因此,所有 ID 的最后一个值为 0。 日期可能并不总是被排序,但我希望在匹配建议之前对其进行排序。在python中有没有一种有效的方法来做到这一点?我有接近 5M 行。
【问题讨论】: