我有以下代码:

counter = 0
for assignid in tqdm(selectedTests['assignids'].unique()):
    selectedTestsForAssignID = selectedTests[selectedTests['assignids']==assignid]
    for memberid in selectedTestsForAssignID['memberid'].unique():
        selectedTestsPivotCorrectTemp = selectedTestsForAssignID[selectedTestsForAssignID['memberid']==memberid].pivot_table(index=['memberid'],
                                                                                                                 columns=['col1', 'col2'],
                                                                                                                 values='col3', aggfunc=np.max)
        if counter == 0:
            selectedTestsPivotCorrect = selectedTestsPivotCorrectTemp
        else:
            selectedTestsPivotCorrect = pd.concat([selectedTestsPivotCorrect, selectedTestsPivotCorrectTemp], axis=0, join='outer')
        counter = counter + 1
memberidselectedTestsPivotCorrectassignidsassignidmemberidsmemberid

即使此代码可以正常运行,但运行速度也很慢。运行需要超过1.5个小时。我感觉这可以以更加有效的方式完成,但是我不知道如何做。

memberid
assignids
memberid['col1','col2']col3

任何使该代码运行更快的建议都受到高度赞赏。

TIA。