繁体   English   中英

Python 使用 Function 和 for 循环进行多处理

[英]Python Multiprocessing with Function and for-loop

我是多处理主题的新手,我不确定如何将它用于我的任务。 我创建了一个 function 来预测未来值,现在想使用多处理来一次计算更多预测。 这些函数采用变量“id”(数据帧中的唯一值)和特定的“数据帧”。这个 function 的结果是一个 dataframe,其中包含预测值。

def forecast("id", dataframe):
  ...
  ...
  return forecast_dataframe

我的第一种方法是:

import multiprocessing as mp
from multiprocessing import Process
import time


if __name__ == '__main__':
    id_list = df.id.unique()[1:16]

    t = time.perf_counter()

    # Init multiprocessing.Pool()
    print("CPU COUNT:", mp.cpu_count())
    pool = mp.Pool(mp.cpu_count()-4)
    results = [pool.apply_async(prophet.forecast("ID3", df), args=(idx, df)) for idx in id_list]
    pool.close()
    pool.join()

    print('Extracted in', time.perf_counter() - t)

    for i in range(len(results)):
        fb_forecast_output = pd.concat([fb_forecast_output, results[i].get()], axis=0)

    fb_forecast_output.to_csv('./data/output/fb_forecast_output.csv', index=False)

不知何故,这只是计算重复一个 ID 的预测。 如何使用 function 以正确的方式使用多处理,如“def 预测”?

谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM