保存数据时如何在for循环中使用多处理池?

时间:2018-10-04 17:55:38

标签: python multiprocessing pool

我有一些要在其上应用multiprocessing.pool的数据,因为我有一台具有16个处理器的计算机。 我在这里生成一些伪数据:

y = pd.Series(np.random.randint(400, high=600, size=1250))
date_today = datetime.now()
x = pd.date_range(date_today, date_today + timedelta(1250), freq='D')
data = pd.DataFrame(columns=['Date','Price'])
data['Date'] = x
data['Price'] = y
d={name: group for name, group in data.groupby(np.arange(len(data)) // (len(data)))} 

我真正想要的是我在for循环参数中应用pool。因此,每个常量使用一个处理器:

parameters = range(300,550,50)
portfolio = pd.DataFrame(columns=['Parameter','Date','Price','Calculation'])
for key, value in sorted(d.items()):
    for constante in parameters:
        print('Constante:',constante)
        # HERE I WANT TO USE MP.POOL()

在代码中,我正在使用某种移动窗口来执行计算。这是最简单的代码版本。所以我想在写入DF时为参数中的每个常量分配一个进程。如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您可能会想像这样使用<div class="another_class"> <div class="A"></div> <div class="B"></div> <div class="C"></div> <div class="D"></div> </div> <div class="A"></div> // this is another class A want to position this below class A ,尽管您可能需要根据自己的需要进行调整...

multiprocessing.pool.map

注意:这未经测试,但是应该可以解决,如果遇到错误,请尝试解决这些错误,因为该概念应该是正确的。