首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将pool.map()用于DataFrame的单个列

将pool.map()用于DataFrame的单个列
EN

Stack Overflow用户
提问于 2021-12-17 18:33:55
回答 1查看 190关注 0票数 0

我试图并行化一个函数在熊猫数据帧上的应用。最简单的方法是:

代码语言:javascript
复制
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)

然而,出于某种原因,公共图书馆似乎没有在我的情况下工作。因此,我正在考虑用pool.map()手动完成此操作:

代码语言:javascript
复制
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行中的等效代码。

my_func是一个函数,它可以从URL中获取图像并对其应用图像处理预测。

EN

回答 1

Stack Overflow用户

发布于 2021-12-17 18:37:20

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

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70397473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档