第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何以有效的方式迭代字典的值?

如何以有效的方式迭代字典的值?

萬千封印 2022-11-09 17:11:20
我正在使用字典運(yùn)行學(xué)校作業(yè)匹配算法。該算法的所有過程都相對(duì)高效,除了我需要將結(jié)果導(dǎo)出到.csv.students是一個(gè)包含 483.070 對(duì)鍵值對(duì)的字典。鍵是一個(gè)帶有 id 的整數(shù),值是我創(chuàng)建的 Student 類對(duì)象。實(shí)際上,要導(dǎo)出結(jié)果,我正在使用以下方法。def parse_student_match_information(student: Student) -> int:    if student.assigned_vacancy is None:        return 0    return student.assigned_vacancy.program_iddef get_assignation_output(students: dict)-> pd.DataFrame:    result = pd.DataFrame(columns = ['Student_ID', 'Program_ID', 'Grade_ID'])    for student in students.values():        program_id = parse_student_match_information(student)        result = result.append({'Student_ID': student.id, 'Program_ID': program_id, 'Grade_ID': student.grade}, ignore_index = True)    return result.sort_values('Grade_ID')制作這個(gè)花了一個(gè)多小時(shí)pd.DataFrame。歡迎任何建議!
查看完整描述

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)。


查看完整回答
反對(duì) 回復(fù) 2022-11-09
  • 1 回答
  • 0 關(guān)注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)