[英]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.