我有一个pyspark DataFrame:df
。例如:
e | attempt | grade
---------------------
1 | 1 | 100
2 | 1 | 95
2 | 2 | 55
3 | 1 | 78
3 | 2 | 100
3 | 3 | 88
.
.
.
我只想为“ e”的每个值选择一行: 该行的所有其他行的最大“尝试”值均为“ e”,并且其尝试次数小于X。
例如,如果我致电get_results(3)
,我应该得到以下信息:
e | attempt | grade
---------------------
1 | 1 | 100
2 | 2 | 55
3 | 3 | 88
.
.
.
如果我致电get_results(2)
,我应该得到以下信息:
e | attempt | grade
---------------------
1 | 1 | 100
2 | 2 | 55
3 | 2 | 100
.
.
.
如果我致电get_results(1)
,我应该得到以下信息:
e | attempt | grade
---------------------
1 | 1 | 100
2 | 1 | 95
3 | 1 | 78
.
.
.
我认为我应该从df.groupby('e')
开始,但是我不知道如何从那里继续。