我有一个名为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)
我得到了一个错误";重采样((取1个位置参数,但给出了14个";基本上14是数据帧中的列数。
starmap
之所以如此命名,是因为它将子集合应用于函数,而不是直接传递:
.starmap(f, coll) ~= .map(lambda sub: f(*sub), coll)
如果希望子集合作为单个参数传递,请改用纯map
。