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
添加回答
舉報