我对数据帧my_method()
的每一行执行方法df
。
results = []
for index, row in df.iterrows():
result = my_method(row)
my_method
函数翻译该行中的文本,并将翻译添加到该行中。
我想使速度更快,并运行多个线程以在行上执行该方法。顺序无关紧要,结果将累积在results
数组中
这是我通常的操作方式:
#divide dataframe to number of threads and execute threads for each portion
def initThreads(numOfThreads, df):
dfSize = len(df)
bulkSize = dfSize // numOfThreads
lastSize = dfSize % numOfThreads
currentIndex = 0
for i in range(0, numOfThreads):
t = threading.Thread(target=my_method, args=(df[currentIndex:currentIndex+bulkSize],))
threads.append(t)
t.start()
currentIndex += bulkSize
t = threading.Thread(target=translate, args=(df[currentIndex:currentIndex+lastSize],))#complete last bulk
此方法似乎并不干净。有没有更合适的方法呢?