【问题标题】:Creating a dictionary with multiprocess使用多进程创建字典
【发布时间】:2018-10-05 19:28:19
【问题描述】:

我正在尝试使用多进程模块制作一个以数据框为值的字典。 我正在使用here 提供的说明。但是,它输出一个空字典。非常感谢任何帮助。

def parallel_main(summary_res_all_type,st,df_x,df_y,max_number):
   res_all 
   =modified_mlr.do_mlr(df_x,df_y,soil_type=st,max_namber=max_number)    
   summary_res_all_type[st]=pd.DataFrame(index=pars_keys_all,columns=[st] )
   summary_res_all_type[st]=res_all['dict_cor_par'].values()

if __name__ == '__main__':
   manager = Manager() 
   summary_res_all_type = manager.dict() 
   job = [Process(target=parallel_main, args=(summary_res_all_type, 
   i,df_x,df_y,max_number))  for i in set(df_x["soil_type"])] 
   _ = [p.start() for p in job]
   _ = [p.join() for p in job]
   print(summary_res_all_type)

【问题讨论】:

  • 此代码不是complete example;许多变量没有初始化,所以我们只能猜测它们是什么。发布一个完整的最小代码,以便我们可以运行它,然后为您提供帮助。

标签: python multithreading dictionary concurrency parallel-processing


【解决方案1】:

这是在黑暗中拍摄的,但下面一行:

res_all = modified_mlr.do_mlr(df_x,df_y,soil_type=st,max_namber=max_number)

看起来它有一个错字max_namber=max_number。这将导致所有进程失败并出现隐藏异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多