用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。