繁体   English   中英

Dask:将自定义函数应用于 DataFrame 出现错误

[英]Dask: applying custom function to DataFrame gets error

我想加快我的 DataFrame 操作并决定为此目的使用 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 个。 你能解释一下我的代码有什么问题吗...

这将有一个小的变化。 您当前正在使用星号解压缩row对象。 您可能希望按原样直接传递该行。

import numpy as np
import pandas as pd
import dask.dataframe as dd
​
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()
print(df1)
   a   b   c
0  1  16  49
1  4  25  64
2  9  36  81

有关更多信息,您可能需要查看表达式Python 文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM