[英]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.