функция, показанная ниже, работает довольно медленно, хотя я использовал swifter для ее вызова.Кто-нибудь знает, как это ускорить?На данный момент мои знания Python ограничены, и я был бы признателен за любую помощь, которую я мог бы получить.Я пытался использовать функцию map (), но у меня почему-то не получилось.Я думаю, что вложенный цикл делает его довольно медленным, верно?
BR, Hannes
def polyData(uniqueIds):
for index in range(len(uniqueIds) - 1):
element = uniqueIds[index]
polyData1 = df[df['id'] == element]
poly1 = build_poly(polyData1)
poly1 = poly1.buffer(0)
for secondIndex in range(index + 1, len(uniqueIds)):
otherElement = uniqueIds[secondIndex]
polyData2 = df[df['id'] == otherElement]
poly2 = build_poly(polyData2)
poly2 = poly2.buffer(0)
# Calculate overlap percentage wise
overlap_pct = poly1.intersection(poly2).area/poly1.area
# Form new DF
df_ol = pd.DataFrame({'id_1':[element],'id_2':[otherElement],'overlap_pct':[overlap_pct]})
# Write to SQL database
df_ol.to_sql(name='df_overlap', con=e,if_exists='append',index=False)