将第二个参数传递给pool.map中的函数

时间:2019-02-11 19:01:07

标签: python python-2.7 arguments multiprocessing python-multiprocessing

我有一个多行的熊猫数据框,我正在使用多重处理来同时处理该数据框中的分组表。它工作正常,但是我在传递第二个参数时遇到问题,我试图将两个参数都作为元组传递,但它不起作用。我的代码如下:

我还想将参数“ col”传递给函数“ process_table”

for col in cols:
    tables = df.groupby('test')
    p = Pool()
    lines = p.map(process_table, table)
    p.close()
    p.join()

def process_table(t):
    # Bunch of processing to create a line for matplotlib
    return line

1 个答案:

答案 0 :(得分:0)

您可以执行此操作,它需要进行迭代并将其扩展为单个参数:

def expand(x):
    return process_table(*x)

p.map(expand, table)

您可能会想这样做:

p.map(lambda x: process_table(*x), table) # DOES NOT WORK

但是它不起作用,因为lambda不能被刺破(如果您不知道这是什么意思,trust me)。