Python 将重复计数列添加到数据帧
我有一个pandas数据框,其中有一个已尝试的课程列表:学生ID、课程ID、尝试的学期以及他们获得的分数。它看起来有点像:Python 将重复计数列添加到数据帧,python,pandas,dataframe,iteration,Python,Pandas,Dataframe,Iteration,我有一个pandas数据框,其中有一个已尝试的课程列表:学生ID、课程ID、尝试的学期以及他们获得的分数。它看起来有点像: Student ID Course ID Academic Term Final Grade N99999 MAT101 201501 2.0 N99999 MAT101 201509 2.5 N11111 CHE101
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,以此类推
Student ID Course ID Academic Term Final Grade Attempt
N99999 MAT101 201501 2.0 1
N99999 MAT101 201509 2.5 2
N11111 CHE101 201609 3.0 1
N11111 PSY101 201601 0.0 1
N11111 PSY101 201701 2.0 2
我该怎么做呢
多谢各位 看起来您正在寻找标准分区。有几种方法可以做到这一点,但我一直在做下面的方式。尝试以下方法(注意我更改/压缩了一些数据): 输出:
student_id course_id academic_term final_grade
0 n999 mat101 201501 2.0
1 n999 mat101 201509 2.5
2 n111 che101 201609 3.0
3 n111 psy101 201601 0.0
4 n111 psy101 201701 2.0
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
输入
输出:
student_id course_id academic_term final_grade
0 n999 mat101 201501 2.0
1 n999 mat101 201509 2.5
2 n111 che101 201609 3.0
3 n111 psy101 201601 0.0
4 n111 psy101 201701 2.0
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
看起来您正在寻找一个标准分区。有几种方法可以做到这一点,但我一直在做下面的方式。尝试以下方法(注意我更改/压缩了一些数据): 输出:
student_id course_id academic_term final_grade
0 n999 mat101 201501 2.0
1 n999 mat101 201509 2.5
2 n111 che101 201609 3.0
3 n111 psy101 201601 0.0
4 n111 psy101 201701 2.0
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
输入
输出:
student_id course_id academic_term final_grade
0 n999 mat101 201501 2.0
1 n999 mat101 201509 2.5
2 n111 che101 201609 3.0
3 n111 psy101 201601 0.0
4 n111 psy101 201701 2.0
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