用法:
DataFrame.apply(func, axis=0, broadcast=None, raw=False, reduce=None, args=(), meta='__no_default__', result_type=None, **kwds)
pandas.DataFrame.apply 的並行版本
這模仿了 Pandas 版本,但以下內容除外:
僅支持
axis=1
(並且必須明確指定)。用戶應通過
meta
關鍵字提供輸出元數據。
- func:函數
應用於每列/行的函數
- axis:{0 或 ‘index’,1 或 ‘columns’},默認 0
- 0 或 ‘index’:將函數應用於每一列(不支持)
- 1 或‘columns’:將函數應用於每一行
- meta:pd.DataFrame、pd.Series、dict、可迭代、元組、可選
與輸出的 dtypes 和列名匹配的空
pd.DataFrame
或pd.Series
。此元數據對於 dask 數據幀中的許多算法起作用是必需的。為了便於使用,還提供了一些替代輸入。可以提供{name: dtype}
的dict
或(name, dtype)
的可迭代對象,而不是DataFrame
(請注意,名稱的順序應與列的順序匹配)。可以使用(name, dtype)
的元組代替係列。如果未提供,dask 將嘗試推斷元數據。這可能會導致意外結果,因此建議提供meta
。有關詳細信息,請參閱dask.dataframe.utils.make_meta
。- args:元組
除了數組/係列之外,要傳遞給函數的位置參數
- Additional keyword arguments will be passed as keywords to the function:
- applied:Series或DataFrame
參數:
返回:
例子:
>>> import pandas as pd >>> import dask.dataframe as dd >>> df = pd.DataFrame({'x': [1, 2, 3, 4, 5], ... 'y': [1., 2., 3., 4., 5.]}) >>> ddf = dd.from_pandas(df, npartitions=2)
將函數應用於在
args
和kwargs
中按行傳遞額外參數:>>> def myadd(row, a, b=1): ... return row.sum() + a + b >>> res = ddf.apply(myadd, axis=1, args=(2,), b=1.5)
默認情況下,dask 嘗試通過在一些假數據上運行您提供的函數來推斷輸出元數據。這在許多情況下效果很好,但有時可能很昂貴,甚至失敗。為避免這種情況,您可以使用
meta
關鍵字手動指定輸出元數據。這可以以多種形式指定,有關詳細信息,請參閱dask.dataframe.utils.make_meta
。在這裏,我們指定輸出是一個名為
'x'
和 dtypefloat64
的係列:>>> res = ddf.apply(myadd, axis=1, args=(2,), b=1.5, meta=('x', 'f8'))
在元數據不變的情況下,也可以直接傳入對象本身:
>>> res = ddf.apply(lambda row: row + 1, axis=1, meta=ddf)
相關用法
- Python dask.dataframe.DataFrame.applymap用法及代碼示例
- Python dask.dataframe.DataFrame.append用法及代碼示例
- Python dask.dataframe.DataFrame.any用法及代碼示例
- Python dask.dataframe.DataFrame.add用法及代碼示例
- Python dask.dataframe.DataFrame.all用法及代碼示例
- Python dask.dataframe.DataFrame.astype用法及代碼示例
- Python dask.dataframe.DataFrame.abs用法及代碼示例
- Python dask.dataframe.DataFrame.align用法及代碼示例
- Python dask.dataframe.DataFrame.assign用法及代碼示例
- Python dask.dataframe.DataFrame.sub用法及代碼示例
- Python dask.dataframe.DataFrame.mod用法及代碼示例
- Python dask.dataframe.DataFrame.cummin用法及代碼示例
- Python dask.dataframe.DataFrame.truediv用法及代碼示例
- Python dask.dataframe.DataFrame.round用法及代碼示例
- Python dask.dataframe.DataFrame.ne用法及代碼示例
- Python dask.dataframe.DataFrame.partitions用法及代碼示例
- Python dask.dataframe.DataFrame.to_bag用法及代碼示例
- Python dask.dataframe.DataFrame.itertuples用法及代碼示例
- Python dask.dataframe.DataFrame.count用法及代碼示例
- Python dask.dataframe.DataFrame.memory_usage用法及代碼示例
注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.dataframe.DataFrame.apply。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。