pandas 数据帧的多处理挂在 queue.get() 和 pool.map()

Multiprocessing with pandas data frames hangs at queue.get() and pool.map()

我是多处理新手。我在 MacOS 中使用 pandaspython3.88 cores 进行数据分析。如果没有多处理,我当前的程序需要 71 seconds 作为 60000x60000 数据帧,我希望加快速度并将其用于更大的数据帧。

我按照一些在线指南编写了一个简单的函数来打印数字。但是执行池的时候挂了。

import multiprocessing as mp
q = mp.Queue()

def func(x): 
  print(x[i])

def main():
  start = time.time()
  pool = mp.Pool(processes = (mp.cpu_count()-1))
  x=np.arange(0,100,1)
  odor_presence = pool.map(func ,x)
  pool.join()
  print('Execution time: ', time.time()-start)

所以在仔细研究了一段时间后,我意识到这是因为我的 anaconda 环境不允许我使用任何多处理。该代码在没有 anaconda 的系统中完美运行。

我也发现了这个,它描述了问题。 Multiprocessing program has AttributeError in Anaconda notebook