Как выполнить распараллеливание при необходимости проверки всех строк в фрейме данных

#python #pandas #multiprocessing

#python #pandas #многопроцессорная обработка

Вопрос:

У меня есть фрейм данных, который содержит миллион строк и почти 100 функций. Мне нужно сначала преобразовать их в строку, а затем удалить почти 17 объектов. Затем мне нужно добавить столбец в фрейм данных, этот столбец называется pred . Методология, которую я добавляю в этот столбец, заключается в группировании строк по их функции «Reta», если -1 найдено, все строки с этим классом будут иметь значение pred -1, иначе это будет 1; это можно сделать с помощью этого кода:

  #getting the prediction 
    hs_p={}
    for i in range(len(classes)):
        class_name=classes[i]
        #this can be rewritten 3shan law l2aina -1  n-stop bdl ma n-check kolo
        check=df.loc[df['CLUSTER'] == class_name]['Reta'].values.tolist()
        if (-1 in check):
            hs_p[class_name]=-1
        else:
            hs_p[class_name]=1
        hs_p_col=[]
    print("prediction done")
    #Adding the prediction column to the df
    for i in hs_p:
        df.loc[df['CLUSTER'] == i, 'pred'] = hs_p[i]
  

Проблема в том, что данные очень большие, и мне потребовалось много времени для запуска, а результата все еще нет. Я думал о выполнении распараллеливания с использованием многопроцессорной библиотеки в python. Однако я понимаю, что многопроцессорная обработка делит фрейм данных на фрагменты, поэтому в первом фрагменте будут некоторые строки класса, а в другом фрагменте будут остальные строки класса, поэтому столбец pred не будет выполнен точно. Есть идеи о том, как это сделать?