如何在Python中使用pool函数?

时间:2019-12-07 13:29:59

标签: python pandas multithreading multiprocessing threadpool

我有两个csv文件:一个带有收单行(银行名称)列表,另一个带有类似但略有错误的银行名称列表。我使用Fuzzywuzzy程序包找到了最相似的前五个程序,但想使用pool函数来加快速度。这是我到目前为止的内容:


#fuzzy match
def f(acquirers):
    row=[]
    d=[]
    len(acquirers)
    for i in acquirers:
        matches=[i]
        match = process.extract(i, banknames, limit=5,scorer=fuzz.token_set_ratio)
        for j in match:
            matches.append(j[0])
            row.append(matches)
        d.append(row)
    return d    



def f_mp(acquirers):
    chunks = [acquirers[i::5] for i in range(93)]

    pool = Pool(processes=5)

    d = pool.map(f, chunks)

    return d

d = f_mp(acquirers)

print(d)
columns = ['Acquirer name', '1', '2', '3', '4', '5']
#final dataframe 
df=pd.DataFrame(data=d, columns= columns)
#export dataframe to csv
df.to_csv('terminateme.csv', index=False)

但是每次我打印而不是在每个单元格中打印每个名称时,所有6个(包括银行名称)都将在每个csv单元格中打印。我不断收到错误消息,说数据列与数据不匹配

0 个答案:

没有答案