如何使用 apply 函数在 Pandas 数据框中使用 concurrent.futures?

问题描述 投票:0回答:0

我一直在尝试并行化我的代码,并花了一些时间研究 Dask、Pandarallel,但由于某种原因它们没有工作,所以我现在正在考虑实施 concurrent.futures。

这就是我的问题陈述:

1)def do_stuff( (self.param1, self.param2) , abs(self.param3)):

value = self.param1, self.param2 的多步方程, self.param3(每行需要 2-5 分钟)
返回值。

2)df['value'] = df.apply(lambda 行:do_stuff((self.param1, self.param2) , abs(self.param3)) , 轴 =1)

由于我的 df 有超过 1500 行,并且每行需要大约 2 分钟来处理单个内核,我相信我会从多处理中受益。我开始了解 pool 和 ProcessPoolExecutor 是如何工作的,但我仍然停留在如何将 df.apply 与多处理一起使用的语法上。我在网上浏览了示例,但找不到任何使用数据框处理应用功能的示例。

with ThreadPoolExecutor(max_workers=1) as executor:
    future = executor.submit(pow, 323, 1235) ------> modify this line to process a df.apply

write back the result to a df.

有人可以用简单的语法帮助我或指出正确的方向吗?非常感谢!

python pandas multiprocessing concurrent.futures
© www.soinside.com 2019 - 2024. All rights reserved.