用法:
DataFrame.apply_rows(func, incols, outcols, kwargs, pessimistic_nulls=True, cache_key=None)
應用逐行的用戶定義函數。
- df:DataFrame
源 DataFrame 。
- func:函數
將在 CUDA GPU 上執行的轉換函數。
- incols: list or dict:
與函數參數匹配的輸入列的名稱列表。或者,將輸入列名稱映射到它們相應的函數參數的字典,例如 {‘col1’: ‘arg1’}。
- outcols: dict:
輸出列名稱及其 dtype 的字典。
- kwargs: dict:
name-value 的額外參數。這些值直接傳遞給函數。
- pessimistic_nulls:bool
當任何相應的輸入為空時,apply_rows 輸出是否應為空。如果為 False,則所有輸出都將為非空,但將是對基礎列數據應用 func 的結果,這可能是垃圾。
參數:
例子:
用戶函數應該遍曆列並為每一行設置輸出。循環執行順序是任意的,因此循環的每次迭代必須彼此獨立。
當調用
func
時,將輸入/輸出對應的數組args進行跨步,以提高GPU並行度。函數中的循環類似於串行代碼,但在多個線程中同時執行。>>> import cudf >>> import numpy as np >>> df = cudf.DataFrame() >>> nelem = 3 >>> df['in1'] = np.arange(nelem) >>> df['in2'] = np.arange(nelem) >>> df['in3'] = np.arange(nelem)
為內核定義輸入列
>>> in1 = df['in1'] >>> in2 = df['in2'] >>> in3 = df['in3'] >>> def kernel(in1, in2, in3, out1, out2, kwarg1, kwarg2): ... for i, (x, y, z) in enumerate(zip(in1, in2, in3)): ... out1[i] = kwarg2 * x - kwarg1 * y ... out2[i] = y - kwarg1 * z
使用輸入列的名稱、輸出列的名稱和 dtype 以及可選的額外參數的字典調用
.apply_rows
。>>> df.apply_rows(kernel, ... incols=['in1', 'in2', 'in3'], ... outcols=dict(out1=np.float64, out2=np.float64), ... kwargs=dict(kwarg1=3, kwarg2=4)) in1 in2 in3 out1 out2 0 0 0 0 0.0 0.0 1 1 1 1 1.0 -2.0 2 2 2 2 2.0 -4.0
相關用法
- Python cudf.DataFrame.apply_chunks用法及代碼示例
- Python cudf.DataFrame.apply用法及代碼示例
- Python cudf.DataFrame.append用法及代碼示例
- Python cudf.DataFrame.all用法及代碼示例
- Python cudf.DataFrame.add用法及代碼示例
- Python cudf.DataFrame.asin用法及代碼示例
- Python cudf.DataFrame.abs用法及代碼示例
- Python cudf.DataFrame.atan用法及代碼示例
- Python cudf.DataFrame.acos用法及代碼示例
- Python cudf.DataFrame.astype用法及代碼示例
- Python cudf.DataFrame.any用法及代碼示例
- Python cudf.DataFrame.assign用法及代碼示例
- Python cudf.DataFrame.argsort用法及代碼示例
- Python cudf.DataFrame.mod用法及代碼示例
- Python cudf.DataFrame.isin用法及代碼示例
- Python cudf.DataFrame.rmul用法及代碼示例
- Python cudf.DataFrame.exp用法及代碼示例
- Python cudf.DataFrame.drop用法及代碼示例
- Python cudf.DataFrame.where用法及代碼示例
- Python cudf.DataFrame.median用法及代碼示例
注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cudf.DataFrame.apply_rows。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。