以参数作为数据帧的多处理

我有一个名为 list1 的列表,其中包含 5 个数据帧。我想同时将这些数据帧传递给一个可以计算一些数学计算的函数。我正在为下面的代码而苦苦挣扎-


import multiprocessing 

import pandas as pd


tcn=[df1,df2,df3,df4,df5]


def resampling(tick):

  

    data_k =  tick['price'].resample('1Min').ohlc()

    return data_k



if __name__ == '__main__':

    with multiprocessing.Pool(processes=len(tcn)) as p:

         results = p.starmap(resampling, tcn)

  

我收到一个错误“resampling() 需要 1 个位置参数,但给出了 14 个”基本上 14 是数据帧中的列数。


慕少森
浏览 115回答 1
1回答

呼唤远方

starmap之所以这样命名是因为它将子集合应用于函数而不是直接传递它们:.starmap(f, coll) ~= .map(lambda sub: f(*sub), coll)如果您希望子集合作为单个参数传递,请改用 plain map。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python