Python Dask:将自定义函数应用于数据帧时出错

Python Dask:将自定义函数应用于数据帧时出错,python,pandas,dask,Python,Pandas,Dask,我想加快我的数据帧操作,并决定为此使用dask库,但无法成功地使用它。我制作了一个测试示例来说明我的问题: import numpy as np import pandas as pd import dask.dataframe as dd from dask.multiprocessing import get def testfunc(good): return good*good df = pd.DataFrame({'a' : [1,2,3], 'b' : [4,5,6], 'c

我想加快我的数据帧操作,并决定为此使用dask库,但无法成功地使用它。我制作了一个测试示例来说明我的问题:

import numpy as np
import pandas as pd
import dask.dataframe as dd
from dask.multiprocessing import get

def testfunc(good):
  return good*good

df = pd.DataFrame({'a' : [1,2,3], 'b' : [4,5,6], 'c' : [7,8,9]})
ddata = dd.from_pandas(df, npartitions=2)

df1 = ddata.map_partitions(lambda df: df.apply((lambda row: testfunc(*row)), axis=1)).compute(get=get)

但是运行这段代码时,我收到一个错误:TypeError:testfunc()接受1个位置参数,但给出了3个。你能解释一下我的代码有什么问题吗…

这只需稍作修改就可以了。您当前正在使用星号解包
对象。您可能希望直接传递该行

将numpy导入为np
作为pd进口熊猫
将dask.dataframe作为dd导入
​
def testfunc(良好):
还算好
​
数据帧({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]})
ddata=dd.from_熊猫(df,npartitions=2)
​
df1=ddata.map_分区(lambda-df:df.apply((lambda-row:testfunc(row)),axis=1)).compute()
打印(df1)
a、b、c
0  1  16  49
1  4  25  64
2  9  36  81
有关更多信息,您可能希望查看Python文档