Python 根据csv文件中的主键计算数量的平均值
我有一个csv文件,其中包含学生的sgpa。我必须计算这些学生的cgpa。学生id_no是csv文件中的主键。该文件的格式为:Python 根据csv文件中的主键计算数量的平均值,python,csv,Python,Csv,我有一个csv文件,其中包含学生的sgpa。我必须计算这些学生的cgpa。学生id_no是csv文件中的主键。该文件的格式为: St_id St_name sem_id sgpa 1 abc 1 2 2 pqr 1 2.5 1 abc 2 3 2 pqr 2 3.5 3 x
St_id St_name sem_id sgpa
1 abc 1 2
2 pqr 1 2.5
1 abc 2 3
2 pqr 2 3.5
3 xzy 1 4.0
St_id St_name sem_id sgpa cgpa
1 abc 1 2 2.5
2 pqr 1 2.5 3.0
1 abc 2 3 2.5
2 pqr 2 3.5 3.0
3 xzy 1 4.0 4.0
我现在需要一个新的专栏来计算学生的cgpa。新表格的格式应为:
St_id St_name sem_id sgpa
1 abc 1 2
2 pqr 1 2.5
1 abc 2 3
2 pqr 2 3.5
3 xzy 1 4.0
St_id St_name sem_id sgpa cgpa
1 abc 1 2 2.5
2 pqr 1 2.5 3.0
1 abc 2 3 2.5
2 pqr 2 3.5 3.0
3 xzy 1 4.0 4.0
我有成千上万这样的学生,所以我无法手动计算。有人能推荐一种用Python完成这项任务的方法吗?提前感谢您的帮助。您可以这样做:
df['cgpa'] = df.groupby('St_id')['sgpa'].transform('mean')
输出:
St_id St_name sem_id sgpa cgpa
0 1 abc 1 2.0 2.5
1 2 pqr 1 2.5 3.0
2 1 abc 2 3.0 2.5
3 2 pqr 2 3.5 3.0
4 3 xzy 1 4.0 4.0
df['cgpa']=df.apply(lambda行:df[df.St_id==row.St_id].sgpa.mean(),axi
s=1)cgpa是如何计算的?@AshishAcharya cgpa只是sgpa的平均值。因此,如果学生有3个学期,那么(sem1sgpa+sem2sgpa+sem3sgpa)/3。谢谢你的帮助。没问题:)