我有一个函数要并行化,以便它返回一个基于数组的多列数据帧。如何使用多处理来完成此操作?这是我的代码的一个例子
def f(df, x):
df['x'] = somefunc(x)
def run_parallel():
df = *existing dataframe*
values = ['a', 'b', 'c', 'd', 'e']
for i,s in enumerate(values):
j = multiprocessing.Process(target=f, args=(df, s))
jobs.append(j)
for j in jobs:
j.start()
return df
其中somefunc(x(返回一个基于x的值列表,df是我想要返回的数据帧。如果我通过多处理运行数据帧,我不知道如何返回具有这些列的数据帧。
参见pandarallel~
from pandarallel import pandarallel
pandarallel.initialize()
df['x'] = df['x'].parallel_apply(somefunc, args=(x,))