Передача второго аргумента функции в pool.map - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть panda dataframe со многими строками, я использую многопроцессорную обработку для одновременной обработки сгруппированных таблиц из этого dataframe.Он работает нормально, но у меня проблема с передачей второго параметра, я попытался передать оба аргумента как кортеж, но он не работает.Мой код выглядит следующим образом:

Я также хочу передать параметр "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 голосов
/ 11 февраля 2019

Вы можете сделать это, он принимает итерацию и расширяет ее на отдельные аргументы:

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

p.map(expand, table)

Вы можете испытать искушение сделать это:

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

Но это не такработать, потому что лямбды не поддаются маринованию (если вы не знаете, что это значит, поверьте мне ).

...