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

Multiprocessing with arguments as dataframes

我有一个名为 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 是数据帧中的列数。

starmap 之所以这样命名是因为它将子集合应用于函数而不是直接传递它们:

.starmap(f, coll) ~= .map(lambda sub: f(*sub), coll)

如果您希望将子集合作为单个参数传递,请改用普通 map