繁体   English   中英

如何使用 Python 多处理提高流程效率

How to make a process more efficient with Python multiprocessing

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个 function func_app ,它的参数是一个巨大的 Dataframe (df1),有 17.000.000 行。 为了使过程更高效,我尝试使用多处理库,但它仍然需要很多时间和 memory 因为我需要在执行 function 之前执行 groupBy。 这个 GROUP BY 是为什么我不能在执行 function 之前将 Dataframe 分成更小的部分的原因,这将使事情变得更容易和更快,但我看不到摆脱它的方法。 有没有我没有想到的方法来解决这个问题?

下面是 python 中的部分代码:

def func_app(g):
    g = g[1].reset_index(drop=True)
    niv_app = g.reindex(columns=['A1','B1','B2','B3'])
    niv_app = niv_app.sort_values(by = ['A1','B1'],ascending = [True,False]).groupby('A1').head(1)
    niv_app = niv_app.reset_index(drop=True)
    g['B1_BIS'] = niv_app.loc[0,'B1']
    g['B2_BIS'] = niv_app.loc[0,'B2']
    g['B3_BIS'] = niv_app.loc[0,'B3']
    return g

with parallel_backend('loky', n_jobs=dict_download['num_cores']):
    var = Parallel(verbose=5)(delayed(func_app)(g) for g in df1.groupby(['A1','A2']))
print('\nManaging results...')
df_output = pd.concat(var, sort=False)

谢谢你!

问题暂未有回复.您可以查看右边的相关问题.
1 在单个处理器中使用多重处理的效率

我计划使用Python的multiprocessing编写一个Python程序。 该程序将在4核计算机上运行。 该程序的核心计算如下: 其中worker()是指耗时的过程。 题 从理论上讲,与顺序版本相比,使用多处理是否会使整个程序变慢? 谢谢。 ...

2 Python。 多处理

最后一次尝试得到答案。 我需要在不同线程上无限循环运行 4 个函数。 错误是只有第一个线程运行。 随意问为什么这些功能是这样的。 ...

3 在 Python 中使用多处理并没有加速程序,我该如何解决这个问题?

所以,我决定我想再测试一下我的 Python 技能,我只是好奇我是否能够创建一个程序来“猜测”我输入的密码,只需运行所有可能的字母组合直到找到正确的密码。 需要明确的是,我没有将它用于恶意目的,我只是想看看它是如何可能的,以及我是否能够弄清楚如何制作一个基本的。 然而,我发现它的执行速度非常慢,当 ...

4 在python多重处理中使用join()

我的问题与以下代码有关: 如您所见,我的父进程在加入子进程之前已经睡眠了很长时间。 而且我的子进程运行起来很快。 问题是: 如上面的示例所示,主进程在加入子进程之前可以等待很长时间吗? 在主进程加入该子进程时,子进程会变成僵尸吗? 这段代码有问题吗? 这是不好的代码吗 ...

6 python 多重处理使用池

我有一个 Python 课程的作业。 问题是这样的: 您将编写一个创建多个进程的程序 (p=10)。 每个进程将收到 integer 值 (y) 并计算 y 乘以 4 (y*4)。 y 值的集合是整数列表 [0, 1, 2, 3, 4, 5]。 你必须使用一个进程池,所以你需要在map这10个进程 ...

7 如何在python中使用多重处理?

我正在尝试执行一项任务,该任务是向列表分配内容。 我将通过多处理来实现。 在完成所有任务之后,我想总结所有这些。 但是,我得到的不是我所期望的。 你知道为什么会这样吗? 下面只是一个示例代码。 结果应为45,而不是0。 ...

10 使用Python多重处理写入CSV

我想利用多处理并行创建单个csv文件,但到目前为止结果很糟糕。 我创建了一个嵌套列表,当执行序列化而不进行多处理时,嵌套列表的尺寸应为50 x 10。 但是,生成的csv文件包含每个列表都是一个元素。 我该如何解决? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM