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,然后在最后對它進行一次排序,而不是每次迭代。您應該會從中看到性能方面的改進。
添加回答
舉報