簡體   English   中英

如何使用嵌套的 iterrows 優化 Pandas 代碼

[英]How to optimize pandas code with nested iterrows

所以我有這個使用嵌套 iterrows 的代碼。 我讀過 iterrows 比 .apply 或矢量化慢得多。

workbook = openpyxl.load_workbook(output)
worksheet = workbook['Sheet1']

for indexA, rowA in dfA.iterrows():
    nameA = rowA[0]
    for indexB, rowB in dfB.iterrows():
        nameB = rowB[14]
        if nameB.startswith(nameA):
            print(f"Found match : {nameB} starts with {nameA}")
            ws[f"A{indexA}"] = indexB[1]
            ws[f"B{indexA}"] = indexB[2]
            ws[f"C{indexA}"] = indexB[3]

wb.save(output)
wb.close()

我無法弄清楚如何使用矢量化或應用於這部分。 目前,dfA 中有 500,000 行,需要 3 個多小時。 無論如何,我正在尋找加快速度。 謝謝你的幫助!

我想首先找到df2[14].startswith df1[0] ,然后創建一個 df,然后使用 pd.save_excel 可能更有效。

但我不明白為什么即使您已經找到匹配項(只需要最后一個?),為什么還要循環所有 df2 行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM