簡體   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