熊猫中的多处理错误



我尝试在熊猫中使用多处理:

from multiprocessing import Pool, cpu_count
def applyParallel(DF, func, data):
    with Pool(cpu_count()) as p:
        ret_list = p.map(func, [(DF, group) for name, group in data])
    return pd.concat(ret_list, axis  = 1)
def apply_row_foo(input_df, data_group):
    dfn = pd.DataFrame()
    for i in data_group['name']:
        dfn['result_' + str(i)] = input_df['student'].apply(lambda x : myfunction(x, i))
    return dfn
if __name__ == '__main__':
    z = applyParallel(df.groupby(df.index % 4), apply_row_foo, DATA)
TypeError: apply_row_foo() missing 1 required positional argument: data_group

如何解决这个问题?谢谢。

您已经定义了apply_row_foo来获取两个参数,但实际上您在单个元组中使用这两个参数调用它。解决此问题的一种方法是让apply_row_foo接受元组参数:

def apply_row_foo(params):
    input_df, data_group = params

apply_row_foo(( 是一个函数,在其中传递两个参数,并且在调用函数时不传递它们。只需按照给定的顺序为函数提供所需的参数或提供类似的东西

function(arg1=val1, arg2=val2(

相关内容

  • 没有找到相关文章

最新更新