我正在运行一个python代码,试图在2个数据集中获得2个最接近的匹配项。我正在使用来自Fuzzywuzzy的摘录来获得结果。代码如下:
from fuzzywuzzy import process
import pandas as pd
import time
data1=pd.read_csv('Dump.csv',encoding='latin-1')
data2=pd.read_csv('Dump5.csv',encoding='latin-1')
b=[]
a=time.time()
long_name=data2['LONG_NAME'].tolist()
long_juri=data2['City'].tolist()
def get_matches(name,juri,limit=2):
result=process.extract(name,data1[data1.JURISDICTION==juri]['LONG_NAME'].tolist(),limit=limit)
return result
for i in range(1,1000):
b.append(get_matches(long_name[i],long_juri[i]))
print(round(time.time()-a,10),"seconds")
c=pd.DataFrame.from_records(b)
c.to_csv("Results.csv",index=False)
我要对30万条记录进行1000条记录的迭代,以获得2个最接近的匹配项。执行需要40分钟。 我需要针对这30万条记录重复30万条记录。这样,将需要近200个小时来执行,而且当我不在无法负担的系统上工作时,也是如此。
不能使用多重处理,因为它会导致我的系统出现性能问题。
如何更快地执行程序?