1 回答
TA贡献1802条经验 获得超5个赞
通常,您不想附加到 DataFrame 而是从可迭代对象中创建它,更好的方法如下所示。
def parse_student_match_information(student: Student) -> int:
if student.assigned_vacancy is None:
return 0
return student.assigned_vacancy.program_id
def get_assignation_output(students: dict) -> Iterable[dict]:
for student in students.values():
program_id = parse_student_match_information(student)
result = {'Student_ID': student.id, 'Program_ID': program_id, 'Grade_ID': student.grade}
yield result
def make_df(rows: Iterable[dict]) -> pd.DataFrame:
df = pd.DataFrame(rows, columns=['Student_ID', 'Program_ID', 'Grade_ID'])
df.sort_values(by=['Grade_ID'])
return df
这样,您可以一次从所有行创建 DataFrame,然后在最后对它进行一次排序,而不是每次迭代。您应该会从中看到性能方面的改进。
添加回答
举报