1 回答
TA贡献1797条经验 获得超6个赞
如果您想返回列中的值student_id和course_id出现的重复次数的累积数量,您可以使用groupby(),transform()函数来解决它cumcount:
df['Count'] = df.groupby(['student_id','course_id'])['course_id'].transform('cumcount')+1
返回:
student_id course_id Count
0 886652 SIM4207 1
1 886652 SIM4207 2
2 4484956 SSE3306 1
3 4484956 SSE3306 2
4 5843448 SSE3150 1
5 886652 SIM3150 1
编辑:
根据预期的输出,仅使用 groupby 和aggby会更容易count:
print(df.groupby(['student_id','course_id']).agg({'course_id':'count'}).rename(columns={'course_id':'count'}).reset_index())
返回:
student_id course_id count
0 886652 SIM3150 1
1 886652 SIM4207 2
2 4484956 SSE3306 2
3 5843448 SSE3150 1
添加回答
举报