首页 > 解决方案 > 熊猫以非固定周期移动行

问题描述

我有以下数据结构

+------+------+-------+----------------------+--------------------+
| uuid | type | score | next_score_incorrect | next_score_correct |
+------+------+-------+----------------------+--------------------+
|    0 | A    |   100 | 110                  | 120                |
|    0 | A    |   110 | 120                  | 120                |
|    0 | B    |   120 | na                   | na                 |
|    1 | B    |    80 | 90                   | 100                 |
|    1 | A    |    90 | 100                  | 100                |
|    1 | B    |   100 | na                   | na                 |
+------+------+-------+----------------------+--------------------+

每条记录我试图计算同一 uuid 内的下一个最大分数,但仅来自 B 类记录(示例列 next_score_correct)。到目前为止,我只能通过执行以下操作(列 next_score_incorrect)来计算下一个最大分数,忽略类型:

df.sort_values(by='score', ascending=True, inplace=True)
df.groupby('uuid')['score'].shift(periods=-1)

我将如何调整我的代码以考虑到我想转移到下一个 B 类型分数,这不一定是下一个?

标签: pythonpandasdataframe

解决方案


推荐阅读