我有这个代码:cleanData = cleanData.sort_values("Name") FinalGrade =computeFinalGrades(cleanData) studentList = cleanData["Studentid"].tolist() nameList = cleanData["Name"].tolist() gradelist1 = cleanData["Assignment1"].tolist() gradelist2 = cleanData["Assignment2"].tolist() gradelist3 = cleanData["Assignment3"].tolist() for i in range(len(studentList)): print(studentList[i], " ", nameList[i], ": ",gradelist1[i], ", ", gradelist2[i], ", ", gradelist3[i], ", ", FinalGrade[i])它给了我这个输出:You have chosen to the show grade list for your file's data.StudentID Name Final grades126519 Alberte Olsen : 2.0 , 12.0 , 0.0 , 7.0s123333 Alexander Hansen : 7.0 , 12.0 , nan , 12.0s123789 Bettina Petersen : 12.0 , 10.0 , 10.0 , 12.0s128348 Ewan McGregor : 12.0 , nan , nan , 12.0s126734 Jepser Jespersen : nan , nan , nan , -3.0s121042 Josephine Brandt : 12.0 , 12.0 , nan , 12.0s123235 Katinka Damgaard : 7.0 , 7.0 , 7.0 , 7.0s127110 Lise Christiansen : -3.0 , -3.0 , -3.0 , -3.0s123579 Marie Hansen : 10.0 , 12.0 , nan , 12.0s123456 Michael Andersen : 7.0 , 7.0 , 4.0 , 7.0s124444 Nanna Nygaard : 10.0 , 4.0 , 4.0 , 7.0s121234 Natalie Sørensen : 4.0 , 10.0 , nan , 10.0s128190 Sara Poulsen : 12.0 , 12.0 , 12.0 , 12.0s127698 Sebastian Bruun : 7.0 , 10.0 , 10.0 , 10.0s123468 Thomas Nielsen : -3.0 , 7.0 , 2.0 , -3.0它列出了学生 ID、姓名、三个作业的成绩和最终成绩。但是我如何对其进行编程,以便它能够处理 M 份作业,因此如果有 5000 份作业,我就不必编写 Gradelist5000 了?以及如何对齐数字使其看起来更漂亮?
1 回答

汪汪一只猫
TA贡献1898条经验 获得超8个赞
对于您指定的任务,无需显式迭代行。也不需要将每个系列转换为列表。只需指定列并使用print.
首先将FinalGrade一个系列添加到您的数据框中。然后'Assignment'通过序列解包(*运算符)选择任意数量的列:
cleanData['FinalGrade'] = computeFinalGrades(cleanData)
assignment_cols = [f'Assignment{i}' for i in range(1, 501)]
print(cleanData[['Studentid', 'Name', *assignment_cols, 'FinalGrade']])
添加回答
举报
0/150
提交
取消