怎么看python有哪些包装_python - 如何在python中包装列表函数? - SO中文参考 - www.soinside.com...

我无法将此问题准确反映为标题。我想正确使用list,func(*args)和Pool.map。请参阅下面。

▼代码def df_parallelize_run(func, arguments):

p = Pool(psutil.cpu_count())

df = p.map(func, arguments)

p.close()

p.join()

return dfdef make_lag(df: DataFrame, LAG_DAY: list):

for l in LAG_DAY:

df[f'lag{l}d'] = df.groupby(['id'])['target'].transform(lambda x: x.shift(l))

return dfdef wrap_make_lag(args):

return make_lag(*args)

鉴于以上三个功能,我想执行以下操作# df: DataFrame

arguments = (df, [1, 3, 7, 13, 16])

df = df_parallelize_run(wrap_make_lag, arguments)

▼错误in df_parallelize_run(func, arguments)

----> 7 df = pool.map(func, arguments)

in ..../python3.7/multiprocessing/pool.py in map(self, func, iterable, chunksize)

--> 268 return self._map_async(func, iterable, mapstar, chunksize).get()

in ..../python3.7/multiprocessing/pool.py in get(self, timeout)

--> 657 raise self._value

TypeError: make_lag() takes 2 positional arguments but 5 were given

我知道这种不匹配的原因(由于解压缩列表[1, 3, 7, 13, 16],所以为5)。怎么做呢?如果可能的话,我想让这个列表适合位置参数的约束。如果几乎不可能(list或Pool.map),哪种方法更合适,更简便,更灵活?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值