pandas 数据帧的多处理挂在 queue.get() 和 pool.map()
Multiprocessing with pandas data frames hangs at queue.get() and pool.map()
我是多处理新手。我在 MacOS
中使用 pandas
和 python3.8
用 8 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
我是多处理新手。我在 MacOS
中使用 pandas
和 python3.8
用 8 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