1 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
通常,您不想附加到 DataFrame 而是從可迭代對(duì)象中創(chuàng)建它,更好的方法如下所示。
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
這樣,您可以一次從所有行創(chuàng)建 DataFrame,然后在最后對(duì)它進(jìn)行一次排序,而不是每次迭代。您應(yīng)該會(huì)從中看到性能方面的改進(jìn)。
添加回答
舉報(bào)