我有這個代碼: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
提交
取消