首页 > 解决方案 > 使用多进程创建字典

问题描述

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

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)

标签: pythonmultithreadingdictionaryconcurrencyparallel-processing

解决方案


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

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

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


推荐阅读