Я написал простой цикл for, который повторяется в каждой строке фрейма данных.Каждая строка фрейма данных сравнивается со всеми записями второго фрейма данных (второй вход этой функции).
Теперь эта функция после некоторых сравнений и поиска возвращает обратно строки new фрейм данных, имеющий следующую структуру.
new_df=pd.DataFrame(columns=['1','2','3','4','5','6','dist','unique','occurence','timediff','id'], dtype='float')
Цикл for теперь выглядит следующим образом:
for i in range(0,small_pd.shape[0]):
new_df=new_df.append(SequencesExtractTime(small_pd.loc[i],large_pd.loc[i]) )
Я пытаюсь найти способ запустить этот код параллельно, так как это занимает годывыполнить на одном ядре.
Я нашел пакет joblib
from joblib import Parallel, delayed
import multiprocessing
num_cores = multiprocessing.cpu_count()
print(Parallel(n_jobs=num_cores)(SequencesExtractTime(small_pd,large_pd)(i) for i in range(0,small_pd.shape[0])))
Теперь проблема состоит в том, как правильно использовать два фрейма данных, чтобы их можно было использовать из параллельного цикла.Я думаю, проблема в том, что я не знаю, как записать входные аргументы в форме, в которой они были у меня в цикле for
small_pd.loc[i]
в форме для функции Parallel.
Можете ли вы помочь мне с этой проблемой?Спасибо, Алекс