如何在python for循环中应用多处理技术?

用户5779223

我有一长串用户(大约200,000)和df带有其属性的相应数据框现在,我想编写一个for循环来衡量用户的成对相似度。代码如下:

df2record = pd.DataFrame(columns=['u1', 'u2', 'sim'])
for u1 in reversed(user_list):
    for u2 in reversed(list(range(1, u1))):
        sim = measure_sim(df[u1], df[u2]))
        if sim < 0.6:
            continue
        else:
            df2record = df2record.append(pd.Series([u1, u2, sim], index=['u1', 'u2', 'sim']), ignore_index=True)

现在,我想通过多处理运行此for循环,并且我已经阅读了一些教程。但是我仍然不知道如何正确处理它。似乎我应该先设置合理数量的进程,例如6然后,我应该将每个循环都放入一个进程中。但是问题是我如何才能知道某个过程中的任务已经完成,以便可以开始新的循环?你能帮我吗?预先谢谢您!

Marqin

您可以使用multiprocessing.Pool,它提供map了在给定的可迭代范围内映射进程池的方法。这是一些示例代码:

def pairGen():
    for u1 in reversed(user_list):
        for u2 in reversed(list(range(1, u1))):
            yield (u1, u2)

def processFun(pair):
    u1, u2 = pair
    sim = measure_sim(df[u1], df[u2]))
    if sim < 0.6:
        return None
    else:
        return pd.Series([u1, u2, sim], index=['u1', 'u2', 'sim'])

def main():
    with multiprocessing.Pool(processes=6) as pool:
       vals = pool.map(processFun, pairGen())

    df2record = pd.DataFrame(columns=['u1', 'u2', 'sim'])
    for v in vals:
       if vals != None:
           df2record = df2record.append(v, ignore_index=True)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在python的循环中保存Excel文件时的多处理

来自分类Dev

如何在 python3.x 中为以下嵌套循环应用多处理

来自分类Dev

Python多处理for循环

来自分类Dev

Python多处理For循环

来自分类Dev

多处理嵌套python循环

来自分类Dev

Python多处理无限循环

来自分类Dev

Python多处理无限循环

来自分类Dev

python中的多处理(从for循环转到for循环的多处理)

来自分类Dev

如何在for循环中使用多重处理-Python

来自分类Dev

如何在Python中实现多处理?

来自分类Dev

如何在循环中处理 R 警告?

来自分类Dev

如何在 for 循环中使用多处理并行化对同一个函数的两次调用,并使用不同的参数?

来自分类Dev

循环中的Python异常处理

来自分类Dev

循环中的Python异常处理

来自分类Dev

如何在批处理脚本嵌套循环中处理变量?

来自分类Dev

如何在循环中忽略输入[Python]

来自分类Dev

如何在Python的循环中定义函数

来自分类Dev

如何在 Python 的循环中构造条件?

来自分类Dev

如何让多处理python应用程序干净退出

来自分类Dev

如何在for循环中处理Python中无法访问的代码

来自分类Dev

如何在Python中为单个函数执行多处理?

来自分类Dev

如何在python多处理中利用所有内核

来自分类Dev

如何在类中的Python中使用多处理

来自分类Dev

如何在批处理循环中获取C ++错误

来自分类Dev

如何在Codeigniter中的foreach循环中处理SQL查询

来自分类Dev

C-如何在while循环中处理用户输入

来自分类Dev

如何在for循环中处理Google Maps API调用

来自分类Dev

如何在批处理FOR循环中将数字零填充?

来自分类Dev

Swift - 如何在 for 循环中处理完成块?

Related 相关文章

热门标签

归档