【问题标题】:Multiprocessing with pandas data frames hangs at queue.get() and pool.map()使用 pandas 数据帧的多处理挂起在 queue.get() 和 pool.map()
【发布时间】:2021-03-19 20:40:51
【问题描述】:

我是多处理的新手。我在 MacOS8 cores 中使用 pandaspython3.8 进行数据分析。如果没有多处理,我当前的程序将 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)

【问题讨论】:

    标签: pandas macos python-multiprocessing python-3.8


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-11
      • 1970-01-01
      • 1970-01-01
      • 2019-01-30
      • 2013-10-02
      • 1970-01-01
      • 2011-07-23
      相关资源
      最近更新 更多