У меня есть такой код:
import pandas as pd
import multiprocessing as mp
a = {'a' : [1,2,3,1,2,3], 'b' : [5,6,7,4,6,5], 'c' : ['dog', 'cat', 'tree','slow','fast','hurry']}
df = pd.DataFrame(a)
def performDBSCAN(feature):
value=scorecalculate(feature)
print(value)
for ele in range(4):
value=value+1
print('here value is ', value)
return value
def processing(feature):
result1=performDBSCAN(feature)
return result1
def scorecalculate(feature):
scorecal=0
for val in ['a','b','c','d']:
print('alpha is:', val )
scorecal=scorecal+1
return scorecal
columns = df.columns
for ele in df.columns:
processing(ele)
Приведенный выше код выполняется последовательно.Я хотел бы ускорить обработку каждого столбца в параллельном режиме с использованием Python, и я написал следующий код с использованием многопроцессорной обработки, но это не помогло.
import pandas as pd
import multiprocessing as mp
def performDBSCAN(feature):
value=scorecalculate(feature)
print(value)
for ele in range(4):
value=value+1
print('here value is ', value)
return value
def scorecalculate(feature):
scorecal=0
for val in ['a','b','c','d']:
print('alpha is:', val )
scorecal=scorecal+1
return scorecal
def processing(feature):
result1=performDBSCAN(feature)
return result1
a = {'a' : [1,2,3,1,2,3], 'b' : [5,6,7,4,6,5],
'c' : ['dog','cat','tree','slow','fast','hurry']}
df = pd.DataFrame(a)
columns = df.columns
pool = mp.Pool(4)
resultpool = pool.map(processing, columns)
Я не смог увидеть вывод и ядропостоянно работает без выхода?В чем может быть проблема?Есть ли другой способ сделать это другими библиотеками в Numba?(Примечание: этот код является нормальным примером. Основная идея заключается в том, что мне нужно взять каждый столбец в кадре данных и выполнить алгоритм DBSCAN. Основываясь на результате DBSCAN, у меня есть другая функция для вычисления оценки для этого. Я дал эти двафункции в приведенном выше коде. Инкрементные операции в вышеуказанных функциях используются для проверки, чтобы увидеть, идет ли он в функцию или нет. Это было мое намерение. Здесь, в первой части кода, он принимает в последовательном порядке, тогда как мне нужно распараллелитьэта область цикла for, чтобы я мог обрабатывать несколько столбцов параллельно).