对DataFrame的单列使用pool.map()



我正在尝试在pandas数据帧上并行化函数的应用程序。简单的方法是:

pandarallel.initialize(progress_bar=True, verbose=0, use_memory_fs=True, nb_workers=2)
df.parallel_apply(lambda x: my_func(x['column1']), axis=1)

然而,由于某种原因,pandarallel库似乎在我的情况下不起作用。因此,我正在考虑使用pool.map((:手动执行此操作

def parallelize_dataframe(df, func, n_cores=2):
df_split = np.array_split(df, n_cores)
pool = Pool(n_cores)
df = pd.concat(pool.map(func, df_split))
pool.close()
pool.join()
return df
df = parallelize_dataframe(df, my_func, n_cores=2)

然而,我不知道如何将pool.map()更改为仅应用于"column1",以获得第2行中的等效代码。

p.S.my_func是一个用于从URL获取图像并对其应用图像处理预测的函数。

尝试拆分df['column']而不是df:

def parallelize_dataframe(df, func, n_cores=2):
df_split = np.array_split(df['column'], n_cores)
#                     added ^^^^^^^^^^
pool = Pool(n_cores)
df = pd.concat(pool.map(func, df_split))
pool.close()
pool.join()
return df

最新更新