我有一段代码,涉及一个函数和一个dask数据帧(df1
(。数据帧已经存在于函数之前,所以当我执行meta=df1.dtypes
时,我正在调用现有的类型。这是代码:
def my_function(group, arg1, arg2, arg3):
# some operations
df1 = df1.groupby("Sequence").apply(my_function, args=[arg1, arg2, arg3], meta=df1.dtypes)
它返回以下错误:
TypeError: my_function() got an unexpected keyword argument 'args'
有人知道为什么吗?我在网上找不到解决方案,我正在遵循DASK API中的指导方针,所以我不知道为什么会出现错误。args=...
应该被正确解析,它们代表函数的附加参数(第一个是groupby()
的结果。
就像在panda中一样,您在*args
中提供了额外的参数,而不是名为args
的参数。
In [14]: df = dask.datasets.timeseries()
In [15]: def myfunc(x, arg1, arg2, arg3):
...: return x.mean()
...:
In [16]: df.groupby("id")[['x', 'y']].apply(myfunc, meta={'x': 'f8', 'y': 'f8'}, arg1=1, arg2=2, arg3=3)
Out[16]:
Dask DataFrame Structure:
x y
npartitions=30
float64 float64
... ...
... ... ...
... ...
... ...
Dask Name: myfunc, 303 tasks