向pandas datafram添加repeat count列

2024-06-07 14:11:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据框,其中有一个已尝试的课程列表:学生的ID、课程ID、尝试的学期以及他们获得的分数。看起来有点像:

Student ID       Course ID   Academic Term    Final Grade   
N99999           MAT101      201501           2.0 
N99999           MAT101      201509           2.5
N11111           CHE101      201609           3.0
N11111           PSY101      201601           0.0
N11111           PSY101      201701           2.0           

我感兴趣的是分析他们的成绩,以及学生是否通过重复一门课程而提高。在

为此,我想添加一个“尝试”列,其中每个组合课程和ID号的术语值最低的行将得到1,下一行是2,依此类推

^{pr2}$

我该怎么做呢?在

谢谢。在


Tags: 数据idpandas列表student学生分数课程
1条回答
网友
1楼 · 发布于 2024-06-07 14:11:21

看起来你在找一个标准分区。有几种方法可以做到这一点,但我一直在做下面的方法。尝试以下方法(注意,我更改/压缩了一些数据):

df

输出:

^{pr2}$

输入

df['attempt'] = df.sort_values('academic_term').groupby(['student_id', 'course_id'], sort=False).cumcount()+1

输出:

student_id course_id academic_term  final_grade  attempt
0       n999    mat101        201501          2.0        1
1       n999    mat101        201509          2.5        2
2       n111    che101        201609          3.0        1
3       n111    psy101        201601          0.0        1
4       n111    psy101        201701          2.0        2

相关问题 更多 >

    热门问题